如何防止在TFS代理程序的后台运行Gradle作业

时间:2016-09-20 14:26:19

标签: selenium gradle azure-devops tfsbuild tfs2015

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

我创建了一个Gradle(调用gradlew.bat)作业,以便从TFS构建定义中运行我的selenium脚本

gradlew.bat clean test aggregate

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

  1. 进程 - Java,iexplorer,IEDriver.exe都在进程管理器中被调用。
  2. 当我杀死iexplorer进程时,我可以在TFS控制台上看到UnreachableBrowserException并运行下一个测试用例。
  3. 运行10分钟后,2个测试用例(约3-4分钟)的作业失败,我在TFS控制台中看到错误日志
  4. 这些脚本是我第一次设置它时在UI上运行但在此之后从未运行过。
  5. 我正在使用Gradle 3.0并通过在gradle.properties中添加org.gradle.daemon = false来禁用Gradle守护程序。这已经让我困扰了几天。

    任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

为了让您的测试与桌面交互,他们需要在登录但未锁定的计算机上以交互方式运行(没有屏幕保护程序处于活动状态)。

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

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

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

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

  • 右键单击桌面
  • 选择新/快捷方式
  • 输入cmd
  • 点击下一步
  • 将名称更改为“启动代理”
  • 点击完成
  • 右键单击新快捷方式
  • 选择属性
  • /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资源管理器中打开“启动”文件夹。
  • 将快捷方式拖放到此文件夹