12

我已经按照http://blogs.msdn.com/b/vstsqualitytools/archive/2009/12/01/executing-unit-tests-in-parallel-on-a-multi-cpu-core-machine.aspx的指示信,我可以并行执行测试。并行运行单元测试超过五个核心

到目前为止这么好。

现在的问题是:我无法将parallelTestCount设置为零(自动配置)或5以上的值。运行五个并行测试正常工作,但不是六个。

是的我的机器上有五个以上的内核;我正在运行一个英特尔i7处理器,这个处理器有四个超线程核心,这意味着我应该能够并行运行8个测试。

现在我确定还有一些其他逻辑或硬性限制,我不希望能够在八个内核上并行运行八个闪速加速测试。

但是,知道它不能同时运行多于五个测试的原因会很酷吗?

+0

当你说你不能将它设置为零时,什么阻止了它?你有错误信息吗? – 2010-08-11 14:29:30

+0

Doh - 我忘了说!当我运行设置为0的测试时,我得到一个“未执行”的测试,另外7个测试立即变为“异常终止”。没有更多的信息。当我将它设置为6有趣的时候,我得到两个“未执行”的测试,其余的都是“中止”。与设置为7相同。设置为8时,立即让所有测试“中止”。 – noopman 2010-08-12 20:54:37

+0

也许只用一组简单的测试,不会做任何壮观的事情,以便您可以确定问题出在你正在运行的测试还是测试框架本身中? – obelix 2010-08-13 06:06:39

回答

6

看来这是MSTest中的一个错误。我偶然发现了同样的问题,所有测试都被标记为中止,并且在测试结果窗口中有一个“测试运行错误”链接,如果单击该链接,将产生以下消息:“测试运行正在中止,”挂起测试数超过最大允许'5'“。

更新:它已在Visual Studio 2010 Service Pack中修复。

+0

我可以确认!看起来这是VS将我们切断! – noopman 2010-08-19 06:09:16

+1

在此处提到Microsoft Connect问题:https://connect.microsoft.com/VisualStudio/feedback/details/587386/running-more-than-five-tests-in-parallel-does-not-work – 2010-08-27 20:44:28

1

它可能只是我,但超线程并不是一个真正的核心,所以i7只有4个物理内核,而不是8个。也许这是与此有关的。

或者,也许有一些bios设置与操作系统正在阻止超线程的方式有关。

+0

你很可能是对的,但是这怎么解释我可以轻松地运行5个测试而不仅仅是4个? – noopman 2010-08-17 05:29:08

+0

我想在理论上HT应该允许更多,但也许在BIOS中有一些限制HT可以被使用的东西,并且当前设置允许VS做5但没有更多并且改变它可以允许更多。 – Peter 2010-08-17 09:52:26