我有一套 NUnit 测试,其中一些会间歇性地失败,可能是因为时间问题。我想找到这些易碎的单元测试。有没有办法重复每个测试多次而不必在每个测试上放置一个 Repeat() 属性?我们经常使用 resharper 和 ncunch 运行程序,但也可以访问 nunit gui 和控制台运行程序。
问问题
6714 次
1 回答
3
单元 3
在 NUnit 3 中,您可以使用Retry属性:
RetryAttribute
用于测试方法,以指定如果失败则应重新运行,最多可运行一次。笔记:
目前无法
RetryAttribute
在一个TestFixture
或任何其他类型的测试套件上使用。只能重复一次测试。如果测试出现意外异常,则返回错误结果并且不会重试。只有断言失败才能触发重试。要将意外异常转换为断言失败,请参阅
ThrowsConstraint
.
单元 2
NUnit 2 不支持重试,但您可以使用NUnit-retry插件(NuGet、GitHub)。使用示例:
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();
}
也可以看看
- 功能 - 添加“重试属性”以在失败时重复测试。讨论 Launchpad 上的功能
于 2014-10-07T09:25:23.400 回答