Gradle-在所有子模块的测试阶段之后运行testReport任务
我有一个简单的示例,我希望在执行Gradle-在所有子模块的测试阶段之后运行testReport任务,gradle,Gradle,我有一个简单的示例,我希望在执行gradletest命令时为所有测试生成聚合报告 我遵循了这一原则,并补充了以下内容: task testReport(type: TestReport) { // make sure this task is run after all subproject test tasks mustRunAfter subprojects*.test destinationDir = file("$buildDir/reports/allTest
gradletest
命令时为所有测试生成聚合报告
我遵循了这一原则,并补充了以下内容:
task testReport(type: TestReport) {
// make sure this task is run after all subproject test tasks
mustRunAfter subprojects*.test
destinationDir = file("$buildDir/reports/allTests")
// Include the results from the `test` task in all subprojects
reportOn subprojects*.test
}
当我在根项目中执行gradle test testReport
时,这会起作用,但当我执行gradle test
或gradle build
时,任务testReport
不会运行
如何使gradle在不每次指定任务的情况下运行该任务?将:
test.finalized by'testReport'
添加到build.gradle;就在根级别,不必在任何闭包中
taskX.finalizedBy taskY
将在每次taskX成功完成执行时运行taskY。您好,谢谢您的回答。您的解决方案给了我以下错误消息:“在根项目“gradle-test-aggregation”上找不到属性“test”,我刚刚查看了您的代码。任务
test
是由java插件添加的,您只将java插件应用于子项目,因此gradle无法找到任务test
。你也可以将插件应用到你的根项目,或者让子项目部分allprojects
起作用。我想我现在明白了。我不想在根项目中使用java插件(它会创建空jar等等)。有没有比在root build.gradle中手动定义“假”测试和生成任务更好的方法来实现我想要的?