如何在 TFS 代理的后台阻止 Gradle 作业 运行

How to prevent Gradle job running in background on TFS agent

我已将 Windows 7 VM 配置为我的 TFS2015 设置的代理。

我已经创建了一个 Gradle(调用 gradlew.bat)作业到 运行 我的 selenium 脚本,来自 TFS 构建定义

gradlew.bat clean test aggregate

当我直接从 VM 手动 运行 它时,这工作正常(我可以看到 IE 被调用),但是当它作为作业触发时,它 运行 仅在背景。以下是我的观察:

  1. 进程 - Java、iexplorer、IEDriver.exe 都在进程管理器中被调用。
  2. 当我终止 iexplorer 进程时,我可以在 TFS 控制台上看到 UnreachableBrowserException 和下一个测试用例 运行s。
  3. 具有 2 个测试用例(大约 3-4 分钟)的作业在 运行 宁 10 分钟后失败,我在 TFS 控制台中看到错误日志
  4. UI 上的脚本 运行 我第一次设置它,但之后再也没有 运行。

我正在使用 Gradle 3.0 并通过在 gradle.properties 中添加 org.gradle.daemon=false 禁用了 Gradle 守护进程。这几天一直困扰着我。

任何帮助都会很棒。

为了让您的测试与桌面交互,它们需要 运行 在已登录且未锁定(未激活屏幕保护程序)的计算机上进行交互。

参见:https://www.visualstudio.com/en-us/docs/build/admin/agents/v2-windows#interactive

您可以将机器配置为自动启动并在启动时进行身份验证,禁用屏幕锁定策略和屏幕保护程序并将 run.cmd 添加到 windows 启动部分星级菜单。

参见:http://donovanbrown.com/post/2015/08/28/auto-start-build-agent-in-interactive-mode

  • Windows键+R打开运行对话框
  • 输入以下内容并按回车键: control userpasswords2
  • 取消选中“用户必须输入用户名和密码才能使用此计算机”框。
  • 单击应用按钮
  • 自动登录对话框会提示您
  • 输入用户密码
  • 单击确定
  • 单击“用户帐户”对话框中的确定

  • 右键单击桌面
  • Select新建/快捷方式
  • 输入cmd
  • 点击下一步
  • 将名称更改为 Start Agent
  • 单击完成
  • 右键单击新的快捷方式
  • Select 属性
  • /c {pathTo\run.cmd} 附加到目标
  • 如果您将代理安装到 C:\Agent,您的目标应如下所示:C:\Windows\System32\cmd.exe /c c:\agent\agent\run.cmd
  • 单击确定

注意: 针对 2.0 构建代理进行了更新,它使用 run.cmd 而不是 vsoagent.exe

启动
  • Windows键+R打开运行对话框
  • 输入以下内容 shell:startup
  • 单击确定
  • 这将在 Windows 资源管理器中打开启动文件夹。
  • 将快捷方式拖放到此文件夹