NUnit(和MSTest)如何处理更改静态/共享变量的测试?

时间:2020-03-06 14:56:12  来源:igfitidea点击:

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

解决方案

更新:

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

这是有关如何启用此功能的分步指南。

MsTest:
因此,根据Microsoft Visual Studio Team System的David Williamson的说法,在MSDN论坛上的这篇文章中:

Tests absolutely do NOT run in
  parallel when run in VS or via
  mstest.exe.   If they are run in a
  Load Test through VS then that is a
  different story. Basic execution,
  however, is always serial.

同样,使用MsTest运行的测试每个都使用不同的线程运行,以确保每个测试的表盘都是干净的。没有办法禁用此行为。

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