如果另一个测试任务失败,是否执行分级测试任务



我正在使用TestNG和Gradle,我试图实现的是,如果运行测试的任务失败,则运行另一个任务,该任务也是实际发送测试报告的测试类型。如果所有测试都通过了,不要做任何事情,我知道finalizedBy,但这会以任何一种方式发送测试报告。

我试过这样的东西,但没有成功。

task uiTest(type: Test) {
useTestNG() {
environment "DOMAIN", "${DOMAIN}"
useDefaultListeners = true
suites "src/test/resources/ui-tests/ThemeA/chrome67.xml"
}
reports {
html {
enabled true
}
reports.html.destination = "build/reports/TestReports/uiTestThemeA"
}
testLogging {
showStandardStreams = true
exceptionFormat "full"
events = ["started", "passed", "skipped", "failed"] //, "standard_out", "standard_error"]
showExceptions = true
showStackTraces = true
}
}
task testing(dependsOn: uiTest, type: Test) {
boolean state = uiTestThemeA.state.executed
if(!state) {
println name
useTestNG() {
suites "src/test/resources/ui-tests/sendReport.xml"
}
}
}

如果我理解正确,那么下面的内容应该可以满足您的需要。将testing任务替换为以下任务,并将uiTest任务配置为由testing任务完成:

task testing(type: Test) {
onlyIf { uiTest.state.failure }
useTestNG() {
suites "src/test/resources/ui-tests/sendReport.xml"
}
}
uiTest {
finalizedBy testing
}

一些注意事项:

  • onlyIf语句具有您想要的魔力
  • 这假设您执行uiTest

最新更新