我有一个不稳定的参数化测试,如果它失败了,我想重试几次,然后在测试运行时实际上说失败。有很好的理由(它与并发和小机会竞争条件有关,这不会整体影响系统),所以不,我不需要删除不稳定。在JUnit 4中,我们可以设置一些规则,其中我设置了一种“重试规则”,在失败之前重试测试x次。但是,在JUnit 5中,这种情况已经消失了,到目前为止,我看到的唯一解决方案涉及正常的JUnit 5测试,而不是参数化测试。在JUnit 5中重试参数化测试的最佳方法是什么?
hpxqektj1#
您可以使用junit-pioneer库进行重试
如果您使用的是Maven:您可以在pom.xml中指定此内容
<dependency> <groupId>org.junit-pioneer</groupId> <artifactId>junit-pioneer</artifactId> <version>1.7.1</version> <scope>test</scope> </dependency>
对于ParameterizedTest,您可以在现有的@ParameterizedTest注解之上添加额外的@RetryingTest(3)注解,如下所示:
@ParameterizedTest @MethodSource("foobarSource") @RetryingTest(3) void yourFlakyParameterizedTest(){ }
对于普通测试,您可以将@Test替换为@RetryingTest(3)
@RetryingTest(3) void yourFlakyNormalTest() { }
而3是尝试失败后希望重试的次数,您可以将其更改为指定的其他数字https://junit-pioneer.org/docs/retrying-test/
1条答案
按热度按时间hpxqektj1#
您可以使用junit-pioneer库进行重试
如果您使用的是Maven:您可以在pom.xml中指定此内容
对于ParameterizedTest,您可以在现有的@ParameterizedTest注解之上添加额外的@RetryingTest(3)注解,如下所示:
对于普通测试,您可以将@Test替换为@RetryingTest(3)
而3是尝试失败后希望重试的次数,您可以将其更改为指定的其他数字
https://junit-pioneer.org/docs/retrying-test/