0

我正在尝试创建一个单元测试以在 Microsoft 测试管理器 2010 中的两台机器上运行。在这个测试中,我希望一些客户端和服务器端测试代码同时运行;客户端测试依赖于服务器端测试是否成功。

在测试管理器中组合测试套件时,我希望能够将两个测试设置为具有相同的顺序值(因此它们同时运行)但验证阻止了这一点;设置顺序如下图: 测试套件

有什么方法可以实现我所追求的同时测试执行?

4

2 回答 2

1

抱歉,回答迟了...我错过了有关您对我的问题的回答的通知:-(对此感到抱歉!

如果您仍在寻找解决方案,这是我的建议。

我想你有一个由两台机器(服务器和客户端)组成的测试环境。如果是这样,您将无法对它们两个都运行测试,或者更好的说法是您对运行测试没有足够的控制权。检查如何同时在多台计算机上运行自动化测试
实际上我在“Visual Studio开发论坛”上发布了一个相关问题,您可以查看我在这里得到的答案:是否可以在多个虚拟机上运行测试,属于相同的环境,使用 build-deploy-test 工作流程

这意味着您最终将创建两个环境,每个环境由一台机器组成(一台用于服务器,一台用于客户端)。
但是,您将无法在构建定义中引用这两个环境,您只能在DefaultLabTemplate 中选择一个环境。

这导致了我可以建议的解决方案:

  1. 创建两个实验室环境
  2. 创建三个构建定义
    • 第一个只会构建您的测试代码
    • 第二个将从第一个部署最后一个成功的构建并在服务器环境上开始测试
    • 第三个将从第一个部署最后一个成功的构建,并在客户端环境上开始测试。
  3. 晚上自动运行第一个构建定义
  4. 稍后同时触发后两者。

这不是很好,我知道...
您必须将构建测试代码的构建定义与运行测试的两个构建定义同步。

几个月前我正在考虑设置类似的测试,这是我想出的最佳解决方案......

我还没有尝试过的另一个选择可能是:

  1. 使用由两台机器组成的单一测试环境,并为它们使用不同的角色(分别为服务器和客户端)。
  2. MTM中创建两个测试设置 (一个用于服务器角色,一个用于客户端角色)。
  3. 使用tcm.exe工具创建一个启动测试的 bat 文件(有关详细信息,请参阅如何:使用 Tcm 从命令行运行自动化测试)。
    您将需要两个tcm.exe调用,一个用于您创建的每个测试设置。
    由于tcm.exe调用只是将测试运行排队并立即返回(或多或少),因此此浴文件将同时启动测试(或多或少)。
  4. 使用DefaultLabTemplate创建构建定义。该定义将:
    • 构建测试代码
    • 将它们部署到您环境中的两台机器上
    • 运行你的浴脚本作为最后一个部署步骤
      (你必须确保这个脚本位于构建机器上或将其部署在那里或使其可从构建机器访问)

正如我所说,我还没有尝试过。
这种方法的缺点是您不会在构建日志中看到测试部分,因为测试不会通过DefaultLabTemplate提供的方式启动。所以当测试失败时构建不会失败。
但是您仍然可以在MTM中看到测试结果,并且可以获得每台机器的测试结果。

但取决于对您来说更重要的是什么(如果测试失败或两者都有,则有休息结果或构建定义失败),这可能是您的解决方案。

于 2013-10-23T12:19:53.603 回答
0

是的,您可以使用修改后的 TestSettings 文件。 http://blogs.msdn.com/b/vstsqualitytools/archive/2009/12/01/executing-unit-tests-in-parallel-on-a-multi-cpu-core-machine.aspx

于 2013-09-06T13:30:25.820 回答