9

我们使用 UI 自动化和 Nunit 为 WPF 应用程序创建测试 UI 测试。当您从本地计算机运行它们时,我们已经创建了可以正常工作的测试。这些测试从未在我们的构建服务器上成功运行(使用 TeamCity)。打开应用程序窗口后构建总是挂起。但是,如果我登录(远程桌面),在我们的构建服务器上,所有 UI 自动化测试也会成功运行。所以我猜测它可能与运行活动的 Windows 会话有关。任何想法如何说服我们的构建服务器创建活动 Windows 会话或任何其他解决方案以使这些测试在构建服务器上运行?

4

4 回答 4

3

你没有太多选择。我将列出我知道的两个,首先是最喜欢的选项:

  • 在构建服务器上设置虚拟机。您的构建在虚拟机中执行。您可以锁定主机(也就是您的构建服务器)以确保安全。
  • 让某人始终保持登录状态。这种偏离会产生安全问题。您可以通过移除鼠标、键盘和屏幕来稍微缓解这个问题,并且只通过 RDP 或类似的方式访问构建服务器。

编辑

看看这个TestComplete FAQ项目: 计算机锁定时TestComplete可以执行脚本吗?

于 2009-05-05T15:06:52.957 回答
1

好吧,我只是在这里猜测。

尝试使用本地构建服务器用户而不是系统帐户运行 TeamCity 服务。在开始新构建之前,您可能必须使用该帐户登录一次。

于 2009-05-05T15:04:45.303 回答
1

听起来你需要使用交互式会话而不是服务来运行测试。添加“允许服务与桌面交互”可能会有所帮助,但显然 Vista 不再支持此功能。

如果您可以将构建交互作为命令行运行,而不是应该工作的服务。

我们曾经使用visual studo 2008 负载代理运行我们的UIAutomation 测试来分发它们,在VM 上作为命令行工具运行没有问题。

我也同意您可能不应该在构建服务器上运行 UI 测试作为您日常构建的一部分。

于 2009-05-05T23:31:50.590 回答
0

打开应用程序窗口后构建总是挂起。

实例化 UI 的测试?这是行不通的,例如,如果你得到一个模态对话框,构建将挂起。这就是发明 MVP 模式的原因,将活动表示代码与具体视图隔离开来。

您是否在自动化测试中使用模拟视图?

于 2009-05-06T00:26:29.117 回答