代码之家  ›  专栏  ›  技术社区  ›  andreja

在生成服务器上运行UI自动化测试

  •  9
  • andreja  · 技术社区  · 17 年前

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

    4 回复  |  直到 14 年前
        1
  •  3
  •   Ian Griffiths    14 年前

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

    • 建立一个 虚拟机 在生成服务器上。您的生成在虚拟机中执行。你可以锁定主机(也就是你的buildserver)来保证安全。
    • 让某人一直登录。这当然会造成安全问题。您可以通过移除鼠标、键盘和屏幕来稍微缓解这个问题,并且只通过RDP或类似的方式访问BuildServer。

    编辑

    看看这个 TestComplete FAQ 项目: 当计算机被锁定时,testcomplete是否可以执行脚本?

        2
  •  1
  •   kay.herzam    17 年前

    好吧,我只是猜测一下。

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

        3
  •  1
  •   Bruce McLeod    17 年前

    它的定义听起来像是您需要使用一个交互式会话来运行测试,而不是使用一个服务。添加“允许服务与桌面交互”可能会有所帮助,但Vista显然不再支持这一点。

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

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

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

        4
  •  0
  •   Ken McCormack    17 年前

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

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

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