9

我有一些代码使用共享网关模式来实现控制容器的反转。我有数百个 NUnit 单元测试来练习使用这个 IOC 的代码。它们都可以工作(在我的机器上!)但我担心这些测试在负载下可能会失败。我似乎记得 NUnit(和 MSTest)尝试在多个线程上并行运行测试(这肯定会触发静态/共享网关上的竞争条件),但我找不到任何说明实际发生情况的文档。我的经验是 NUnit 似乎是按顺序运行测试的。我的问题是,NUnit(或 MSTest)是否曾经并行运行单元测试?如果有,在什么条件下?而且,我可以通过某种配置选项将其关闭吗?

4

1 回答 1

8

更新:

Visual Studio 2010 引入了并行运行测试的能力。

这是有关如何启用此功能的分步文章。

MsTest:
因此,来自 Microsoft Visual Studio Team System 的 David Williamson在 MSDN 论坛的这篇文章中表示:

在 VS 或通过 mstest.exe 运行时,测试绝对不会并行运行。如果它们是通过 VS 在负载测试中运行的,那就另当别论了。但是,基本执行始终是串行的。

此外,使用 MsTest 运行的测试每个都使用不同的线程运行,以确保您对每个测试都有一个干净的状态。无法禁用此行为。

NUnit:
NUnit 在同一个线程上运行所有测试。

于 2008-09-30T18:10:35.770 回答