如何在JUnit 5上重试参数化测试?

sbtkgmzw  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(140)

我有一个不稳定的参数化测试,如果它失败了,我想重试几次,然后在测试运行时实际上说失败。有很好的理由(它与并发和小机会竞争条件有关,这不会整体影响系统),所以不,我不需要删除不稳定。
在JUnit 4中,我们可以设置一些规则,其中我设置了一种“重试规则”,在失败之前重试测试x次。但是,在JUnit 5中,这种情况已经消失了,到目前为止,我看到的唯一解决方案涉及正常的JUnit 5测试,而不是参数化测试。在JUnit 5中重试参数化测试的最佳方法是什么?

hpxqektj

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/

相关问题