【问题标题】:how do I prevent resharper 8 from running parallel tests with nunit?如何防止 resharper 8 使用 nunit 运行并行测试?
【发布时间】:2013-11-05 07:19:19
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    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 过于优秀和快速。

    【讨论】:

    • 以编程方式执行此操作将有效,如果您在 CI 服务器上并行运行测试也将有效,但它可能有点笨拙:R# 对此有一个选项(请参阅我的回答)。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-01-03
      • 2011-09-16
      • 1970-01-01
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多