如何在基于 xUnit 的测试中针对特定异常类型进行重试

6

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

类似于:

[Fact]
[Retry(3, typeof(ArgumentException)] 

有没有办法在xUnit中实现这种行为的归档?

2
为什么你想要重试它? - Progman
@user1316502 请查看编写单元测试的最佳实践。尝试在一致的前提下重现您不稳定的环境变量。 - Aly Elhaddad
“不稳定的环境”通常称为“易错测试”,应重写以消除其“不稳定性”。 - Fabio
我遇到了问题X,想用Y方法来解决它。我该如何实现Y? - Fabio
1
如果你真的相信一个大型测试套件可以避免不稳定的测试,那么你可能没有做过太多的测试:https://testing.googleblog.com/2016/05/flaky-tests-at-google-and-how-we.html Google表示他们在好的测试中有1.5%的不稳定率。 - satnhak
显示剩余2条评论
1个回答

3

您可以查看xunit-retry,这是一个可能已经过时但是建立在相同问题上的工具。 虽然它不支持在特定异常上进行重试,但它会检查此处的44行是否有异常:https://github.com/giggio/xunit-retry/blob/master/XUnitRetry/RetryTestCase.cs 调用aggregator.toException将提供一个异常(如果只有一个)或返回AggregateException,然后您可以检查聚合异常是否与您想要重试测试的异常列表匹配。


3
有位好心人将其复活了:https://github.com/JoshKeegan/xRetry(在米尔顿凯恩斯生活肯定很无聊)。 - satnhak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接