Java/SpringBoot环境中的Selenium和Cucumber-自动重试失败的测试

z31licg0  于 2023-03-02  发布在  Spring
关注(0)|答案(1)|浏览(243)

我有一个相当大的Selenium/Cucumber测试套件,它运行在Java/Spring-Boot/Angular环境中。
这个问题是经典的:由于页面故障和/或服务器/环境问题而导致测试不稳定。
我知道有一种方法可以让cubber重试失败的测试很多次,我见过一些相当先进的解决方案,比如创建一个失败的测试列表,然后重新运行这些测试,等等。
但我遇到了这个,据说可以在较新的 cucumber 版本:

cucumber --retry 2

问题是:如何在我的设置中实现这一点?
下面是我的CucumberTest.java文件,其中指定了插件、功能位置等:

Slf4j
@RunWith(Cucumber.class)
@CucumberOptions(
    plugin   = { "pretty", "json:target/cucumber.json", "html:target/cucumber-html-report",  },
    tags = { "~@integration", "~@Ignore", "~@ToggledOff", "~@Known_error" },
    features = { "src/test/resources/features" })

public class CucumberTest {

@BeforeClass
public static void setup() {
    log.info("\n\n-------------------------------------------------------\n" +
        " RUN ALL SCENARIOS FOR System\n" +
        "\n-------------------------------------------------------\n"
    );

}

@AfterClass
public static void quitTestSuite() {
    Hooks.closeConnections();
    Hooks.stopWatchTotalTime.stop();
    StringBuilder slowTests = findPotensialSlowTests();
    log.info("\n\n-------------------------------------------------------" +
            "\nALL SCENARIOS FINISHED FOR SYSTEM" +
            "\nTotal time         : {}" +
            "\nNumber of scenarios: {}" +
            slowTests.toString() +
            "\n-------------------------------------------------------\n"
        , Hooks.stopWatchTotalTime, Hooks.scenarioCounter.get());

}

有什么想法吗?这个文件中有那个(可能还有其他) cucumber 选项的位置吗?或者其他地方?所有的帮助/提示都很感激。

g52tjvyc

g52tjvyc1#

您可以在@CucumberOptions注解内的CucumberTest.java文件中的以下行之后添加retry = 2

features = { "src/test/resources/features" },

相关问题