【问题标题】:JaCoCo Gradle plugin does not generate xml or html reportsJaCoCo Gradle 插件不生成 xml 或 html 报告
【发布时间】:2020-05-18 15:40:08
【问题描述】:

我正在尝试在运行 ./gradlew test 时生成 JaCoCo 代码覆盖率报告。我的build.gradle 文件中有以下内容:


apply plugin: "java" // needed by jacoco plugin
apply plugin: "jacoco"


test {
    useJUnitPlatform()
}

jacoco {
    toolVersion = "0.8.5"
    applyTo junitPlatformTest
}

jacocoTestReport {
    reports {
        xml.enabled true
        html.enabled true
        html.destination file("${buildDir}/jacoco/jacocoHtml")
    }
}

junitPlatformTest {
    jacoco {
        destinationFile =  file("${buildDir}/jacoco/jacocoReport.exec")
    }
}

每当我运行测试时,都不会生成 xml 或 html 报告。然而,JaCoCo 确实{buildDir}/jacoco 中生成了一个junitPlatformTest.exec 文件。我怎样才能让它也生成一些 xml 和 html 报告?

【问题讨论】:

标签: gradle jacoco


【解决方案1】:

JaCoCo 似乎添加了一些任务,但不会自动将它们作为依赖项附加到测试任务。

我在 build.gradle 中有以下内容,以便在测试运行后生成覆盖率:

test.finalizedBy jacocoTestReport

您可以使用 dependsOn 而不是 finalizedBy 但如果测试失败,dependsOn 不会为您提供覆盖范围。

【讨论】:

  • 这个建议确实使得无论测试通过还是失败都会生成报告,但恐怕它仍然不会生成 html 或 xml 报告。
  • 如果去掉 html.destination 会发生什么?我的 build.gradle 或多或少有相同的东西(我没有设置 jacoco.applyTo),并且默认情况下报告最终在 build/reports/jacoco/test/html 中结束(我记得它有点试验和错误到达那个)。
  • 删除 html.destination 似乎并没有改变任何东西。我设置了 jacoco.applyTo,因为它需要设置 junitPlatformTest { jacoco { destinationFile = file(...) } },否则不会生成任何文件。
猜你喜欢
  • 2018-12-18
  • 1970-01-01
  • 2021-01-29
  • 2015-08-03
  • 2019-09-07
  • 1970-01-01
  • 2021-10-10
  • 2016-03-09
  • 2018-09-09
相关资源
最近更新 更多