当前位置: 首页 > 知识库问答 >
问题:

Gradle-在所有子模块的测试阶段后运行testReport任务

张姚石
2023-03-14

我有一个包含子项目的简单项目,我希望在执行<code>gradle test

我遵循了gradle文档并添加了以下内容:

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 testgradle build时-任务testReport未运行。

如何使gradle在不每次指定任务的情况下运行任务?

共有1个答案

董奇思
2023-03-14

Add: test.finalizedBy 'testReport' to your build.gradle;只是在根级别,不必在任何闭包内。

taskX.finalizedBy taskY

每次taskX成功完成执行时,都会运行taskY。

 类似资料:
  • 我有以下多模块项目结构。 当我为/builder子项目运行任务时,我希望所有子项目都会执行任务(对于

  • 在我的多项目中,我正在根项目上运行测试任务,并期望它将在子项目上运行测试任务并生成一个测试报告。我观察到的是,它从来没有在子项目上运行测试任务。我的期望是不正确的吗?“我需要在我的gradle脚本中进行任何特殊配置吗? 请注意,我的根项目中没有测试。

  • 我有一个多模块的maven项目 我有maven surefire插件设置,用于执行单元测试“*测试。“核心api”模块中包含java。 我们在一个单独的“集成测试”模块中进行了缓慢的长时间运行的集成测试。我们使用“*测试。java也用于我们的integ测试。 我们需要能够编译所有源代码,但希望排除“intg-test”作为默认maven“test”阶段的一部分运行。我们计划使用配置文件来启用“in

  • 我有一个Java应用程序,它使用Gradle作为构建系统。这是多项目构建(几个Java项目)。 当我运行时,有些测试失败了,我注意到并不是所有的测试都在运行。 如果我将以下代码添加到中,它确实会运行所有测试,但当然,构建的代码总是成功完成: 我有两个问题: gradle是否在第一次失败后停止执行测试? 是否有一种方法可以运行所有测试(即使在一些测试失败时),并且如果其中一些测试失败,构建的测试仍然

  • 我希望通过在所有模块构建和单元测试完成后从所有模块运行集成测试来加快对“简单”构建失败(编译错误和单元测试失败)的反馈。 你能提出一个实现这一点的好方法吗?

  • 我有一个Gradle任务,简单地将文件从一个文件夹复制到另一个文件夹。 当在配置阶段调用copy'from''into'方法时,它可以工作,但当在执行阶段调用它们时,它就不工作了。 这样做是有效的 gradle copyServerConfig 如果我把它放在doFirst{}块中,也会发生同样的事情。 我不明白的另一件事是: gradle task1 但如果我改成这样: gradle task1