gpt4 book ai didi

maven - 倾城:如何重新运行所有损坏的测试然后生成报告

转载 作者:行者123 更新时间:2023-11-28 20:29:57 35 4
gpt4 key购买 nike

我有大约 150 个测试。当我运行它们时,我总是有大约 2-5% 的测试失败,而且总是有不同的测试...

我想要的:运行一次测试,如果有损坏的测试,maven 会重新运行它们,然后我可以重新生成包含更改的报告:它只会通过和失败的测试

这可能吗?我应该从什么开始?

我用的是Java+Maven+JUnit)

最佳答案

Allure 不运行您的测试,它只显示测试结果。因此,您几乎没有选择来重新运行失败的测试:

  • 使用maven surefire 插件 中的rerunFailingTestsCount 选项。如果设置此选项,surefire 将在失败后立即重新运行失败的测试。参见 docs了解更多详情。

  • 在易碎测试中使用自定义 jUnit 重试规则:

    public class RetryRule implements TestRule {

    private int attempts;
    private int delay;
    private TimeUnit timeUnit;

    public RetryRule(int attempts, int delay, TimeUnit timeUnit) {
    this.attempts = attempts;
    this.delay = delay;
    this.timeUnit = timeUnit;
    }

    @Override
    public Statement apply(final Statement base, final Description description) {
    return new Statement() {
    @Override
    public void evaluate() throws Throwable {
    Throwable e = null;
    for (int i = 0; i <= attempts; i++) {
    try {
    base.evaluate();
    return;
    } catch (Throwable t) {
    Thread.sleep(timeUnit.toMillis(delay));
    }
    }
    throw e;
    }
    };
    }
    }

    并将其添加到每个易碎测试中:

    @Rule
    public RetryRule retryRule = new RetryRule(2, 1, TimeUnit.SECONDS);

    您可以找到有关 jUnit 规则的更多信息 here .

关于maven - 倾城:如何重新运行所有损坏的测试然后生成报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32649787/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com