在构建服务器上运行UI自动化测试

时间:2009-05-05 14:40:11

标签: wpf testing user-interface automation teamcity

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

4 个答案:

答案 0 :(得分:3)

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

  • 在构建服务器上设置虚拟机。您的构建在虚拟机中执行。您可以锁定主机(也称为您的构建服务器)以确保安全。
  • 让某人一直登录。这种情况造成了安全问题。您可以通过移除鼠标,键盘和屏幕来缓解此问题,并且只能通过RDP或类似方式访问构建服务器。

修改

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

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

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

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

答案 3 :(得分:0)

  

打开应用程序窗口后,构建始终挂起。

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

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