尝试处理由于大型测试套件中的时间敏感操作而导致的罕见测试失败可能会令人沮丧。好消息是,您可以实现 TestRule 来重试失败的测试。
TestRule 使您可以控制测试执行。要创建 RetryRule,请定义一个类,如下所示:
public class RetryTest {
public class RetryRule implements TestRule {
...
public Statement apply(Statement base, Description description) {
...
}
...
}
}
在 apply 方法中,使用提供的 base.evaluate() 在测试调用周围插入重试逻辑:
public Statement apply(Statement, Description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
...
for (int i = 0; i 使用 RetryRule
使用如下规则注释您的测试类:
...
@Rule
public Retry rule = new Retry(3);
...
其他选项
自定义 TestRunner:
或者,您可以创建一个扩展 BlockJUnit4ClassRunner 并覆盖 runChild() 的自定义 TestRunner 来实现重试
注意:
- RetryRule 允许指定重试次数,而自定义 TestRunner 则不允许。
- 您还可以使用注解选择性地应用重试逻辑。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3