2

我正在尝试运行 UI 测试(使用白色编写)。当我使用 NUnitConsole 运行它们时,一切正常。当我尝试使用 TeamCity 运行它们时,出现以下异常Test(s) failed. White.Core.UIItems.UIActionException : Couldn't find window with title Form1 in process 4132, after waiting for 5000 ms。可能有什么问题?我该怎么做才能使测试通过?

4

4 回答 4

3

不仅需要将构建代理设置为与桌面交互,而且必须显示桌面才能使 UI 自动化工作 - 不能锁定桌面并且不能运行屏幕保护程序。您的代理在无头机器上吗?如果您使用 RDP 连接到代理以检查事物,当您关闭 RDP 时,它会锁定桌面。在这种情况下,自动化将失败。不要使用 RDP,而是使用 VNC 查看器登录到盒子,而不是 RDP,因为当您关闭桌面时,VNC 不会锁定桌面。

另一个需要考虑的问题是网络访问。如果您将 TC 代理作为可以访问桌面的服务运行,那么它将在无法访问网络共享等的服务帐户下运行...如果这是一个问题,那么您将无法运行 TC代理即服务,而是需要使用域用户登录并启动 agent.bat 文件以启动代理。

于 2011-05-09T14:55:28.417 回答
3

花了很多时间解决这个问题。

主要步骤:

  1. 您需要安装了 teamcity 构建代理的单独计算机。电脑应该有显示器和鼠标。
  2. 代理不应该作为 Windows 服务启动和运行(如果需要,禁用它)。
  3. 您应该从 .bat 文件(以管理员身份)启动 TeamCity 构建代理。为此,请使用参数转到TeamCityBuildAgentfolder\bin并启动agent.bat文件start
  4. 一段时间后禁用计算机的屏幕睡眠/锁定。您的测试将需要桌面来进行 UI 操作。

如果您做对了所有事情,您应该能够在 TeamCity 的“代理”菜单中看到您的构建代理处于活动状态。

您还可以自动启动 TeamCity 代理(在选定用户登录时):

  1. 自动化用户的登录。更多说明在这里

  2. 在任务计划程序中创建任务,该任务将在用户登录时以管理权限(具有最高权限)启动构建代理

  3. 确保将自动登录的用户拥有所有必要的权限(运行脚本、执行文件操作等)

重要的!

  • 以这种方式运行 UI 测试是一个潜在的安全漏洞,因此请确保非授权人员无法访问运行此测试的计算机。
  • 请记住,在运行 UI 测试时,计算机不应被锁定或处于睡眠模式。
于 2013-10-18T12:59:05.110 回答
2

您可能必须让 Teamcity 构建代理与桌面交互。

运行 -> services.msc -> 选择 TeamCity Build 代理并右键单击 -> 属性 -> 登录选项卡 -> 选中“允许服务与桌面交互”

编辑:

如果这不起作用,请停止代理服务,转到构建代理文件夹( c:\teamcity\buildagent\bin ?)并发出agent.bat start然后触发测试。

于 2011-05-06T06:27:16.013 回答
1

建议在虚拟机上运行 UI 测试。

似乎是最可靠的解决方案。

于 2011-05-10T14:55:00.407 回答