多次运行NUnit测试

时间:2014-10-05 21:59:16

标签: unit-testing nunit resharper ncrunch

我有一套NUnit测试,其中一些测试间歇性失败,可能是因为时间问题。我想找到这些片状单元测试。有没有办法多次重复每个测试而不必在每个测试中放置Repeat()属性?我们经常使用resharper和ncrunch跑步者,但也可以使用nunit gui和console跑步者。

1 个答案:

答案 0 :(得分:2)

NUnit 3

在NUnit 3中,您可以使用Retry属性:

  

RetryAttribute用于测试方法以指定它应该是   如果失败则重新运行,最多重复次数。

     

注意:

     

目前无法在RetryAttribute或任何其他类型的测试套件上使用TestFixture。只有单一的测试可能   重复。

     

如果测试有意外异常,则返回错误结果并且不会重试。只有断言失败才能触发重试。至   将意外异常转换为断言失败,请参阅   ThrowsConstraint

NUnit 2

NUnit 2不支持重试,但您可以使用 NUnit-retry 插件(NuGetGitHub)。使用示例:

private static int run = 0;

...

[Test]
[Retry(Times = 3, RequiredPassCount = 2)]
public void One_Failure_On_Three_Should_Pass()
{
    run++;

    if (run == 1)
    {
        Assert.Fail();
    }

    Assert.Pass();
}

另见