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