【问题标题】:Jacoco Gradle Plugin and its dependency on the test taskJacoco Gradle 插件及其对测试任务的依赖
【发布时间】:2019-03-17 16:27:02
【问题描述】:

我正在关注这些文档

https://docs.gradle.org/4.2.1/userguide/jacoco_plugin.html

在启用了 java 插件的 java 应用程序中,我添加了这一行来启用 jacoco 插件

应用插件:'jacoco'

文档状态

如果 Java 插件也应用于您的项目,则会创建一个名为 jacocoTestReport 的新任务,该任务依赖于测试任务

所以现在当我跑步时

./gradlew build jacocoTestReport

我可以看到它作为构建的一部分启动了测试,但是我们有一些失败的测试,所以整个测试任务报告为失败。

jacoco 代码覆盖率报告不生成任何内容。

如果我跑了

./gradlew jacocoTestReport

我收到一份成功的报告

这听起来像是一个愚蠢的问题,但第一个命令 ./gradle1 build jacocoTestReport 没有生成报告的原因是因为测试失败吗?

如果测试通过,./gradlew build 会运行jacocoTestReport 任务吗?

【问题讨论】:

    标签: java gradle build.gradle jacoco gradle-plugin


    【解决方案1】:

    我更喜欢“授人以渔”而不是授人以渔。本着这种精神,我建议您添加task tree plugin,这样您就可以直观地看到自己正在发生的事情

    plugins {
      id "com.dorongold.task-tree" version "1.3.1"
    }
    

    你可以试试

    gradle build taskTree
    

    gradle jacocoTestReport taskTree 
    

    并查看每个任务树中的内容

    【讨论】:

    • 谢谢@lance-java 我会去进一步了解
    • 哦,不错,以后一定会用的
    【解决方案2】:

    我已经注释掉了失败的测试并运行了 ./gradlew build

    其余测试通过,但没有报告。

    我将在 lance-java 的顶端进行一次狂欢,因为我确实喜欢钓鱼!

    也打算试试 ./gradlew build jacocoTestReport

    ./gradlew build jacocoTestReport 是赢家!!

    【讨论】:

    • 您还可以在 build.gradle 中添加类似 check.dependsOn jacocoTestReport 的内容。这会将jacocoTestReport 任务永久连接到“检查”生命周期任务(如您所见,它被“构建”生命周期任务调用)
    【解决方案3】:

    这是因为测试失败了。

    将以下意志添加到 build.gradle 将确保生成覆盖率:

    test.finalizedBy jacocoTestReport
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多