如何在gradle项目中获取jacoco代码覆盖率报告

lea*_*ovy 5 groovy code-coverage gradle jacoco

我是 Groovy gradle 世界的新手,我已经编写了包含所有测试用例的小型 Groovy 项目。我正在尝试使用 jacoco 插件生成代码覆盖率报告。但它只生成测试报告而不生成代码覆盖率报告。请找到我的 jacoco gradle 文件配置。我正在使用gradle 4.5 版本Groovy 版本:2.5.0 -rc-2 JVM:1.8.0_171 供应商:Oracle Corporation 操作系统:Windows 10

为了生成 html 格式的 jacoco 代码覆盖率报告,我在这里缺少什么。

提前感谢您的帮助!

我的 jacoco.gradle

apply plugin: "jacoco"

jacoco {
  toolVersion = '0.8.1'
}

jacocoTestReport {
  group = "reporting"
  description = "Generate Jacoco coverage reports after running tests."
  reports {
    xml.enabled true
    html.enabled true
    csv.enabled false
    html.destination "${buildDir}/jacocoHtml"
  }
  sourceDirectories = fileTree(dir: 'src/main/myproject')
}
Run Code Online (Sandbox Code Playgroud)

我正在运行gradle clean build命令在我的项目存储库下生成构建文件夹。

VaL*_*VaL 8

选项1

运行gradle build jacocoTestReport生成 JaCoCo 代码覆盖率报告。

选项2.1

使任务依赖于您的 Gradle 脚本:

build.dependsOn jacocoTestReport
Run Code Online (Sandbox Code Playgroud)

然后就跑gradle buildbuildJaCoCo 报告将在每次任务执行时生成。

方案2.2(由Filip Malczak提出)

添加到您的 Gradle 脚本中:

test.doLast jacocoTestReport.&execute
Run Code Online (Sandbox Code Playgroud)

它的工作方式与前一个选项类似,但在每次执行test任务后生成报告。如果您倾向于通过跑步test而不是通过跑步来工作,那么它会很有用build

  • 最后一个选项对我不起作用 "> 无方法签名:org.gradle.testing.jacoco.tasks.JacocoReport_Decolated.execute() 适用于参数类型:() 值:[] " (2认同)