15

我将 TeamCity 用于我的 CI 构建,并且我想设置第二个构建以在 Windows XP 和 Windows 7 虚拟机上运行自动化 UI 测试。

我想象构建工作如下:

  1. 编译、运行单元测试等。
  2. 使用 WiX 准备 MSI
  3. 将 MSI 复制到目标测试机器
  4. 远程执行 MSI
  5. 将测试工具代码复制到远程机器
  6. 运行测试
  7. 构建完成

自动化 UI 测试是使用 NUnit 编写的,需要直接在测试虚拟机上运行(它们不能远程运行)。重要的是,如果测试失败,它会出现在 TeamCity 构建日志中并且构建失败。我宁愿不在任一测试虚拟机上安装 VS 或 TeamCity 构建代理。

使用psexec.exe似乎大部分都应该是可能的。有没有我应该看的替代(最好是开源)工具?

4

2 回答 2

7

深呼吸

我们正在寻找一些东西来帮助我们进行自动化 UI 测试。我们使用 ranorex 来测试 UI 和 TeamCity/Msbuild 来执行测试。

我们从来没有找到任何工具来帮助我们(我一直在关注一些工具,所以会监控这个线程),但这是我们所做的。

  1. CI 服务器将设置文件和测试脚本复制到测试主机服务器。
  2. 然后 CI 服务器在测试主机服务器上启动一个自定义应用程序,提供要启动的 VM 的名称。
  3. 然后,测试主机服务器使用 启动 VM 软件,Virtual PC.exe -singlepc -pc vhdname.vhd -launch并等待它关闭(在它运行测试之后)。
  4. VM 从网络位置获取设置文件和脚本并执行。
  5. 运行测试后,它会将结果返回到联网位置并自行关闭。
  6. 控制权返回给定制化 App。
  7. 控制权返回给 CI 服务器,该服务器根据结果确定它是通过还是失败(并更新 UI,以便开发人员了解结果)。
  8. 结果在 TeamCity 中作为工件收集并在 Svn 中标记。

我认为这就是一切。然而,它令人费解,但它确实有效。希望有人能帮助你。

于 2010-08-27T13:32:20.697 回答
2

Gallio团队的 Jeff Brown一直在谈论一种名为Archimedes的工具,他计划编写该工具来支持这种需求。这听起来很有希望,但我认为到目前为止还没有太大的进展。

但与此同时,Gallio 项目中有一个叫做VM Tool的东西可以做你想做的事。它提供停止、启动和快照虚拟机的命令,更重要的是,来回复制文件和执行命令。

我想你也考虑过Powershell Remoting吗?

于 2010-08-26T12:01:57.237 回答