Gradle 取决于失败的梯度任务
一项渐进式任务能否依赖于另一项任务的失败 例如,我有一个辅助任务,可以在浏览器中打开测试报告。我希望报告仅在任务“测试”失败时显示,而不是像现在这样在所有测试都通过时显示Gradle 取决于失败的梯度任务,gradle,Gradle,一项渐进式任务能否依赖于另一项任务的失败 例如,我有一个辅助任务,可以在浏览器中打开测试报告。我希望报告仅在任务“测试”失败时显示,而不是像现在这样在所有测试都通过时显示 task viewTestReport(dependsOn: 'test') << { def testReport = project.testReportDir.toString() + "/index.html" "powershell ii \"$testReport\"".execute(
task viewTestReport(dependsOn: 'test') << {
def testReport = project.testReportDir.toString() + "/index.html"
"powershell ii \"$testReport\"".execute()
}
task viewTestReport(dependsOn:'test')您可以尝试设置任务的finilizedBy
属性,如:
task taskX << {
throw new GradleException('This task fails!');
}
task taskY << {
if (taskX.state.failure != null) {
//here is what shoud be executed if taskX fails
println 'taskX was failed!'
}
}
taskX.finalizedBy taskY
若测试任务失败,则会显示报告,但若您调用它:
gradle test
在任何情况下都不会显示任何报告。这与您描述的一样有效,但是gradle taskY
不会执行taskX
,而是gradle taskX
在出现故障时执行taskY
。在我的示例中:gradle viewTestReport
不执行test
,gradle test
将在失败时执行viewTestReport
。我要的是相反的。@cheezsteak我有你想要的。不幸的是,唯一可行的方法是提供构建脚本参数并直接使用测试任务。在这种情况下,您可以在需要时使用ReportShowOnDemand运行测试。
gradle test -PshowReport
gradle test