首页  >  文章  >  Java  >  如何立即重试失败的 JUnit 测试?

如何立即重试失败的 JUnit 测试?

Linda Hamilton
Linda Hamilton原创
2024-11-02 04:55:02940浏览

How to Retry Failed JUnit Tests Instantly?

立即重试失败的 JUnit 测试

尝试处理由于大型测试套件中的时间敏感操作而导致的罕见测试失败可能会令人沮丧。好消息是,您可以实现 TestRule 来重试失败的测试。

创建 RetryRule

TestRule 使您可以控制测试执行。要创建 RetryRule,请定义一个如下所示的类:

<code class="java">public class RetryTest {
    public class RetryRule implements TestRule {
        ...
        public Statement apply(Statement base, Description description) {
            ...
        }
        ...
    }
}</code>

在 apply 方法中,使用提供的 base.evaluate() 在测试调用周围插入重试逻辑:

<code class="java">public Statement apply(Statement, Description) {
    return new Statement() {
        @Override
        public void evaluate() throws Throwable {
            ...
            for (int i = 0; i < retryCount; i++) {
                ...
            }
            ...
        }
    };
}</code>

使用 RetryRule

使用如下规则注释您的测试类:

<code class="java">...
@Rule
public Retry rule = new Retry(3);
...</code>

其他选项

自定义 TestRunner:

或者,您可以创建一个自定义 TestRunner 来扩展 BlockJUnit4ClassRunner 并重写 runChild() 来实现重试机制。

注意:

  • RetryRule 允许您可以指定重试次数,而自定义 TestRunner 则不会。
  • 您还可以使用注释来有选择地应用重试逻辑。

以上是如何立即重试失败的 JUnit 测试?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn