我目前正在设置 CI,使用 Thoughtworks Studios 的 Cruise、Gallio 来运行 xunit.net fact/tests,并使用 ncover 2 来进行代码覆盖。
我注意到运行代码覆盖率与我们的构建代理服务器拥有的四个 CPU 之一挂钩,并且想知道是否有一个多线程测试运行程序可以代替我使用,以利用其他 3 个内核闲着?我进行了快速搜索,但大多数命中都是关于测试多线程代码,而不是多线程测试运行......
我目前正在设置 CI,使用 Thoughtworks Studios 的 Cruise、Gallio 来运行 xunit.net fact/tests,并使用 ncover 2 来进行代码覆盖。
我注意到运行代码覆盖率与我们的构建代理服务器拥有的四个 CPU 之一挂钩,并且想知道是否有一个多线程测试运行程序可以代替我使用,以利用其他 3 个内核闲着?我进行了快速搜索,但大多数命中都是关于测试多线程代码,而不是多线程测试运行......
Gallio实现了并行测试执行。
在 NUnit 中,您可以传递/thread 参数,该参数在不同的线程中生成测试执行。我想拥有一个线程池来生成测试不会有太多的工作。您必须确保测试中没有依赖项。
我会询问 xUnit.NET 或 NUnit 列表。我知道 Charlie 正在努力使 NUnit 3.0 的这一部分。您还可以将PNunit视为扩展。还有一篇文章,有人致力于在多个线程中获取 xUnit.NET。
就在昨天,我看到了 Damon Payne 的这篇文章:
http://www.damonpayne.com/2008/05/09/ConcurrentUnitTestingWithXUnitNet1.aspx
其中他介绍了为 xUnit.NET 编写自定义测试运行程序,该运行程序使用类作为并发单元显式分发测试用例,以利用多个内核。
如果不出意外,我知道在 CruiseControl.NET 中,您可以同时运行多个两个操作。我认为克鲁斯也是如此。您可以在每个测试的 1/4 上运行四个实例,然后将结果缝合在一起。但是,知道何时合并它们可能很困难。