我想自动重试失败的测试,以提高我的测试的可靠性,类似于 Junit 中的 TestRule 我想要灵活地在测试中插入逻辑,所以我可以实现重试循环:
我正在使用 Cucumber-JVM ,需要一个涉及 Java 或 Gradle
我通过Gradle javaexec尝试了以下黄瓜选项:
// - 格式漂亮 - 格式重新运行--out tmp / rerun.txt
// - 格式重新运行 - 输出C:\ Desktop \ failed.txt
目前我正在通过RunCukesTest.java尝试此操作。
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;
/**
* String dotcucumber
boolean dryRun
String[] features
String[] format
String[] glue
boolean monochrome
String[] name
Specify a patternfilter for features or scenarios
SnippetType snippets
boolean strict
String[] tags
*
*/
@RunWith(Cucumber.class)
@CucumberOptions(monochrome = true)
public class RunCukesTest {
}
答案 0 :(得分:0)
拉丁德维斯苏莱曼的答案是不可能的:
在环顾四周并尝试了一些事情之后,我终于找到了一个快速而肮脏的修复方法。这是我的解决方案:task cucumber() {
dependsOn assemble, compileTestJava
doLast {
javaexec {
main = "cucumber.api.cli.Main"
classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
args = ['-f', 'rerun:rerun.txt','--glue', 'org.test.cucumber', 'src/test/resources']
}
}
}
task cucumberRerun() {
dependsOn assemble, compileTestJava
doLast {
def file1 = new File('rerun.txt')
for (int i=0;i<file1.getText().split(" ").length;i++) {
println file1.getText().split(" ")[i]
try {
javaexec {
main = "cucumber.api.cli.Main"
classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
args = ['-f','html:target'+i,'--glue', 'org.test.cucumber', 'src/test/resources/'+file1.getText().split(" ")[i]]
}
} catch (Exception e) {
}
}
}
}
cucumber.finalizedBy cucumberRerun