6

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

这个过程是一个数据库,所以我的 SetUp 和 TearDown 方法毫不奇怪地做了相反的事情,如果允许同时运行,绝对会互相踩踏。

他们不能互相踩踏,因为每当两个测试同时运行时,他们就会被锁定。

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

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

4

2 回答 2

6

如何连续运行 NUnit 测试夹具?——快上班了。

在我的测试夹具基础上(我总是base.SetUp()在派生 SetUp 的开头运行),我添加了以下内容:

    [SetUp]
    protected virtual void SetUp()
    {
        FixtureHandle.Wait();
    }

    [TearDown]
    protected virtual void TearDown()
    {
        FixtureHandle.Set();
    }

FixtureHandle是一个ManualResetEvent。这可以防止 NUnit 过于优秀和快速。

于 2013-10-26T02:51:22.223 回答
-1

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

于 2016-09-26T13:18:13.557 回答