如何使用Cucumber重新运行失败的场景?
我正在使用黄瓜进行testing。 如何仅重新运行失败的testing?
重新运行格式化程序运行黄瓜:
cucumber -f rerun --out rerun.txt
它将输出所有失败scheme的位置到这个文件。
然后你可以通过使用重新运行它们
cucumber @rerun.txt
这是我简单而整洁的解决scheme。
第一步 :用rerun:target/rerun.txt
写下你的黄瓜java文件。 黄瓜在rerun.txt
写入失败的场景行数,如下所示。
features/MyScenaios.feature:25 features/MyScenaios.feature:45
稍后我们可以在步骤2中使用这个文件
@RunWith(Cucumber.class) @CucumberOptions( monochrome = true, features = "classpath:features", plugin = {"pretty", "html:target/cucumber-reports", "json:target/cucumber.json", "rerun:target/rerun.txt"} //Creates a text file with failed scenarios ,tags = "@mytag" ) public class MyScenarioTests { }
第2步:创build另一个场景文件,如下所示。 我们假设这是FailedScenarios.java
@RunWith(Cucumber.class) @CucumberOptions( monochrome = true, features = "@target/rerun.txt", //Cucumber picks the failed scenarios from this file format = {"pretty", "html:target/site/cucumber-pretty", "json:target/cucumber.json"} ) public class FailedScenarios { }
每次如果您发现有任何失败的场景,请在步骤2中运行该文件
您至less需要1.2.0版才能使用@target / rerun.txt新function。 之后,只需创build一个最后运行的runner并使用这个文件。 另外,如果您使用的是Jenkins,则可以在随机故障function上放置一个标签,以便构build不会失败,除非运行两次。