如何防止resharper 8与nunit一起运行并行测试?

时间:2013-10-26 02:48:14

标签: c# nunit resharper visual-studio-2013

我在VS2013中使用Resharper 8运行测试,它与外部进程集成并重定向其输出。我不是在寻找有资格作为单元测试的指导,因为我发现测试运行器对于任何测试都比控制台应用程序更好。

这个过程是一个数据库,所以我的SetUp和TearDown方法毫不奇怪地做了彼此的对立面,如果允许同时运行,它们绝对会互相踩到。

他们没有相互踩踏,因为每当两次测试同时开始时,他们就会锁定。

Resharper的最新版本7没有这个问题。

修补 Resharper>中的单元测试设置选项>单元测试没有帮助。

2 个答案:

答案 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();
    }

FixtureHandleManualResetEvent。这可以防止NUnit过于善良和快速。

答案 1 :(得分:-1)

来自@ nik.shornikov的上述答案将起作用,但在Resharper 2016.2及更高版本(也可能在早期版本中)中,您可以通过选项执行此操作,而无需编写任何代码。有关详细信息,请参阅我对Is there a way to *prevent* ReSharper from running an assembly's unit tests in parallel?的回答。