【问题标题】:How to prevent Gradle job running in background on TFS agent如何防止 Gradle 作业在 TFS 代理的后台运行
【发布时间】:2016-09-20 14:26:19
【问题描述】:

我已将 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. 包含 2 个测试用例(大约 3-4 分钟)的作业在运行 10 分钟后失败,我在 TFS 控制台中看到错误日志
  4. 脚本在我第一次设置时在 UI 上运行,但之后就再也没有运行过。

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

任何帮助都会很棒。

【问题讨论】:

  • 您的构建代理是交互运行还是作为服务运行?
  • 它作为服务运行

标签: selenium gradle azure-devops tfsbuild tfs-2015


【解决方案1】:

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

见: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
  • 取消选中用户必须输入用户名和密码才能使用此计算机。
  • 点击应用按钮
  • 系统会提示您自动登录对话框
  • 输入用户密码
  • 单击确定
  • 在“用户帐户”对话框中单击确定

  • 右键单击桌面
  • 选择新建/快捷方式
  • 输入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 资源管理器中打开 Startup 文件夹。
  • 将快捷方式拖放到此文件夹

【讨论】:

  • 优秀。像魅力一样工作。
猜你喜欢
  • 2019-08-23
  • 1970-01-01
  • 1970-01-01
  • 2012-11-26
  • 1970-01-01
  • 2017-05-23
  • 2015-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多