我在VS2013中使用Resharper 8运行测试,它与外部进程集成并重定向其输出。我不是在寻找有资格作为单元测试的指导,因为我发现测试运行器对于任何测试都比控制台应用程序更好。
这个过程是一个数据库,所以我的SetUp和TearDown方法毫不奇怪地做了彼此的对立面,如果允许同时运行,它们绝对会互相踩到。
他们没有相互踩踏,因为每当两次测试同时开始时,他们就会锁定。
Resharper的最新版本7没有这个问题。
修补 Resharper>中的单元测试设置选项>单元测试没有帮助。
答案 0 :(得分:6)
How to run NUnit test fixtures serially? - 即将开始工作。
在我的测试夹具基础上(我总是在派生的SetUp的开头运行base.SetUp()
),我添加了以下内容:
[SetUp]
protected virtual void SetUp()
{
FixtureHandle.Wait();
}
[TearDown]
protected virtual void TearDown()
{
FixtureHandle.Set();
}
FixtureHandle
是ManualResetEvent
。这可以防止NUnit过于善良和快速。
答案 1 :(得分:-1)
来自@ nik.shornikov的上述答案将起作用,但在Resharper 2016.2及更高版本(也可能在早期版本中)中,您可以通过选项执行此操作,而无需编写任何代码。有关详细信息,请参阅我对Is there a way to *prevent* ReSharper from running an assembly's unit tests in parallel?的回答。