尝试处理由于大型测试套件中的时间敏感操作而导致的罕见测试失败可能会令人沮丧。好消息是,您可以实现 TestRule 来重试失败的测试。
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>
使用如下规则注释您的测试类:
<code class="java">... @Rule public Retry rule = new Retry(3); ...</code>
自定义 TestRunner:
或者,您可以创建一个自定义 TestRunner 来扩展 BlockJUnit4ClassRunner 并重写 runChild() 来实现重试机制。
注意:
以上是如何立即重试失败的 JUnit 测试?的详细内容。更多信息请关注PHP中文网其他相关文章!