C# 重复NUnit非决定性测试,直到通过或失败

C# 重复NUnit非决定性测试,直到通过或失败,c#,nunit,C#,Nunit,我有一系列的测试依赖于一些错误的机制。我能够检测到测试机制何时失败并触发非决定性异常 我想要的是一种机制(理想情况下,类似于属性),我可以使用它来重新运行每个抛出非决定性的测试,直到我通过或失败(或者进行了合理的重试次数)。我不喜欢基本的解决方案“在每个测试用例方法中实现一个循环” 我不想一次又一次地运行我的测试,直到它们通过,我只想运行它们,直到它们给我一个结论 编辑:我不想以编程方式将循环添加到现有的每个测试中,因为它会更改代码本身,迫使我再次验证所有方法(繁重的过程)。此外,它还使得测试代

我有一系列的测试依赖于一些错误的机制。我能够检测到测试机制何时失败并触发非决定性异常

我想要的是一种机制(理想情况下,类似于属性),我可以使用它来重新运行每个抛出非决定性的测试,直到我通过或失败(或者进行了合理的重试次数)。我不喜欢基本的解决方案“在每个测试用例方法中实现一个循环”

我不想一次又一次地运行我的测试,直到它们通过,我只想运行它们,直到它们给我一个结论

编辑:我不想以编程方式将循环添加到现有的每个测试中,因为它会更改代码本身,迫使我再次验证所有方法(繁重的过程)。此外,它还使得测试代码更重,维护性更低


编辑:我使用的错误机制是测试框架本身,一个我无法更改的现有专有框架。它的目的是将C#对象映射到来自定制PCI卡的二进制数据,这些数据有时无法映射。永远也不会有预算来解决这个问题,我不得不接受它。

似乎你需要自己编写NUnit插件。下面是一个很长很好的解释,如何做到这一点:

为什么您不喜欢循环解决方案?对我来说似乎是一个非常有效的方法。如果你不想让你的测试永远运行,你可以限制你的循环?你确定你想依靠它吗?这是一个可以替换为测试目的的依赖项吗?(您是否正在测试依赖关系,或者只是使用依赖关系的逻辑等)能否详细说明为什么循环不是一个有利的选择?我想知道是什么让你得出这个结论的。这可能是一个有解决方案或解决办法的问题,我们可以更容易地提供。那么你是说bug机制实际上就是测试框架?如果是这样的话,您要么使用了错误的框架(但NUnit非常可靠),要么使用了错误的框架。黑暗中拍摄:你依赖于测试方法的顺序吗?@AnthonyPegram:真的没有办法改变库,请参见编辑:(别担心,我有非常干净的设置和拆卸机制:)听起来是个坏消息,但我已经习惯了这个想法。将问题保留几天,以防万一。