2008-09-30 51 views
9

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

回答

8

更新:

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

以下是关于如何启用此功能的step by step article

MSTEST:
所以根据大卫·威廉姆森,从微软的Visual Studio Team System中,上this post在MSDN论坛:

测试绝对不要在 并行VS或通过运行时运行 mstest.exe。如果他们运行在通过VS的 负载测试中,那么这是一个不同的故事。然而,基本执行, 始终是串行的。

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

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

+1

该信息已过时。 MSTest肯定会并行运行测试。你只需要编辑配置文件。 – 2012-05-07 06:05:05