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在同一线程上运行所有测试。