如何根据特定异常类型在 xUnit 中重试测试

use*_*502 6 c# xunit xunit.net

我正在寻找自定义 xUnit 属性的方法,可能是为了在测试的特定异常上重试测试。

就像是

[Fact]
[Retry(3, typeof(ArgumentException)] 
Run Code Online (Sandbox Code Playgroud)

有没有办法在 xUnit 中存档此行为?

小智 3

看看 xunit-retry ,它可能已经过时了,但在构建时就考虑到了同样的问题。虽然它不支持对特定异常进行重试,但它会检查第 44 行是否存在异常:https://github.com/giggio/xunit-retry/blob/master/XUnitRetry/RetryTestCase.cs 调用 aggregator.toException 将如果只有一个,则给您一个异常,或者返回 AggregateException,然后您可以检查聚合的异常是否与您想要重试测试的异常列表匹配

  • 一些好人复活了这个:https://github.com/JoshKeegan/xRetry(米尔顿凯恩斯的生活一定很乏味)。 (3认同)