如何以编程方式获取 NUnit Retry 迭代?

How can I get the NUnit Retry iteration programmatically?

在 NUnit 3 中,如果 returns 失败,您可以通过测试 x 次 Retry 属性将测试修饰为 运行。有没有办法以编程方式检索重试测试的次数?

我想根据当前测试经历了多少次迭代来执行一些代码,例如:

if(CurrentTest.Retries > 1)
{
   //do something
}

我已经在 TestContext.CurrentContext 下进行了检查,但似乎无法访问属性值,也无法通过 Retry 属性访问当前测试 运行 的次数。

没有内置方法可以做到这一点。 NUnit 在内部维护计数。

您的解决方法是维护一个跟踪计数的实例成员,将其初始化为零并在每次执行该方法时递增它。如果您想对不止一种方法执行此操作,则每种方法都需要自己的计数器。

在我看来,这是向 NUnit 团队提出的合理功能要求。

你可能想试试

TestContext.CurrentContext.CurrentRepeatCount

这适用于 NUnit 3.0