【问题标题】:Running unit tests on more than five cores in parallel在超过五个内核上并行运行单元测试
【发布时间】:2010-08-11 14:18:42
【问题描述】:

我已经完全按照http://blogs.msdn.com/b/vstsqualitytools/archive/2009/12/01/executing-unit-tests-in-parallel-on-a-multi-cpu-core-machine.aspx 上的说明进行操作,并且可以并行执行测试。

到目前为止一切顺利。

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

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

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

但是,如果知道它没有并行运行超过五个测试的原因会很酷吗?

【问题讨论】:

  • 当您说不能将其设置为零时,是什么阻止了这种情况?您收到错误消息吗?
  • Doh - 我忘了说!当我使用设置为 0 运行测试时,我得到一个“未执行”的测试,而另一个 7 立即变成“中止”。没有更多信息。当我把它设置为 6 时,我得到了两个“未执行”的测试,其余的都是“中止”的。与设置为 7 相同。设置为 8 时,我会立即“中止”所有测试。
  • 也许只尝试一组简单的测试,这些测试不会做任何引人注目的事情,这样您就可以确定问题出在您正在运行的测试中还是测试框架本身?跨度>
  • 就是这样......我的八个不同的测试是测试测试。他们所做的只是一个简单的 Thread.Sleep(5000)。在一个完美的世界里,我的八个核心会同时执行它们。问题是为什么最多只有五个?是 VS 限制还是硬件还是什么?

标签: visual-studio unit-testing visual-studio-2010 parallel-processing


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

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

或者也许有一些与阻止它的操作系统如何使用超线程有关的 bios 设置。

【讨论】:

  • 您可能是对的,但这如何解释我可以轻松运行 5 个测试而不仅仅是 4 个?
  • 我猜理论上 HT 应该允许更多,但也许 bios 中有一些东西限制了 HT 的使用方式,当前设置允许 VS 做 5 但不能做更多并改变它可能允许更多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 2021-01-05
  • 1970-01-01
  • 2012-11-28
  • 2023-03-21
  • 2011-04-24
  • 1970-01-01
相关资源
最近更新 更多