【发布时间】:2017-03-09 17:04:17
【问题描述】:
我知道 TestNG 生成 testng-failed.xml 的内容,其中包含有关失败测试的信息。 我想在 Gradle 中使用它来创建运行失败测试的新任务:
task secondTry(type: Test) {
onlyIf {
file("build/reports/tests/test/testng-failed.xml").exists()
}
println file("build/reports/tests/test/testng-failed.xml").exists()
testClassesDir = sourceSets.test.output.classesDir
classpath = sourceSets.test.runtimeClasspath
useTestNG() {
suites("build/reports/tests/test/testng-failed.xml")
}
}
在第二次运行任务后尝试我为println file("build/reports/tests/test/testng-failed.xml").exists() 获得了true,但未运行失败的测试并跳过任务:secondTry SKIPPED
有没有人遇到过这种情况,如何让测试运行?
更新: 我尝试稍微修改一下任务,所以只需运行 testng-failed.xml:
task secondTry(type: Test) {
useTestNG() {
useDefaultListeners = true
reports.html.enabled = false
options.suites("build/reports/tests/test/testng-failed.xml")
}
}
结果,构建成功执行,包括secondTry任务,但失败的测试仍然没有运行。
【问题讨论】:
-
您是否有特殊原因要使用 gradle 来执行此操作?使用 testNG 侦听器有更简单的方法