我有一些代码使用共享网关模式来实现控件容器的反转。我有几百个NUnit单元测试来运行使用这个IOC的代码。他们都工作(在我的机器上!)但我担心这些测试可能会在负载下失败。我似乎记得NUnit(和MSTest)试图在多个线程上并行运行测试(这肯定会触发静态/共享网关上的竞争条件),但我找不到任何说明实际发生情况的文档。我的经验是,NUnit似乎正在顺序运行测试。我的问题是,NUnit(或MSTest)是否并行运行单元测试?如果是这样,在什么条件下?而且,我可以通过某种配置选项关闭它吗?
答案 0 :(得分:8)
<强>更新强>
Visual Studio 2010引入了并行运行测试的功能。
以下是关于如何启用此功能的step by step article。
<强> MSTEST:强>
所以来自Microsoft Visual Studio Team System的David Williamson,在MSDN论坛的this post上:
绝对不要进行测试 在VS或via中运行时并行 mstest.exe。如果他们在一个 通过VS加载测试然后是一个 不同的故事。基本执行, 但是,总是串行的。
此外,使用MsTest运行的测试每个都使用不同的线程运行,以确保每个测试都有一个干净的平板。无法禁用此行为。
<强> NUnit的:强>
NUnit在同一个线程上运行所有测试。