【问题标题】:Running test task on gradle root project does not run test task on subprojects在 gradle root 项目上运行测试任务不会在子项目上运行测试任务
【发布时间】:2016-01-26 03:03:22
【问题描述】:

在我的多项目中,我正在根项目上运行测试任务,并期望它将在子项目上运行测试任务并生成单个测试报告。我观察到的是它从未在子项目上运行测试任务。我的期望不正确”我需要在我的 gradle 脚本中做任何特殊配置吗?

请注意,我的根项目中没有测试。

【问题讨论】:

  • 您使用的是按需配置吗?根项目和您的子项目上的测试任务是否具有完全相同的名称?
  • 我没有使用“按需配置”功能,而是在所有项目中使用默认任务名称“test”。谢谢。

标签: unit-testing gradle multi-project


【解决方案1】:

我认为,Gradle User Guide 的这个 sn-p 应该可以帮助您:

subprojects {
    apply plugin: 'java'

    // Disable the test report for the individual test task
    test {
        reports.html.enabled = false
    }
}

task testReport(type: TestReport) {
    destinationDir = file("$buildDir/reports/allTests")
    // Include the results from the `test` task in all subprojects
    reportOn subprojects*.test
}

【讨论】:

  • 当我清理并运行时它可以工作,没有清理它不起作用,似乎是 gradle 版本的问题
  • 如果 Gradle 任务的输入和输出没有改变,Gradle 的默认行为是不重新运行该任务。因此,如果您尝试在不更改任何内容的情况下重新运行测试任务,例如源文件,它不会重新运行。当您清理项目时,您基本上是在删除已编译的类文件,测试任务依赖于这些文件,因此 Gradle 会重新运行该任务。您可以明确要求 Gradle 重新运行此处所述的任务:stackoverflow.com/questions/29427020/…
猜你喜欢
  • 1970-01-01
  • 2019-08-09
  • 1970-01-01
  • 1970-01-01
  • 2020-09-06
  • 2020-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多