升级到 AGP 4.2.0,无法生成 Jacoco 代码覆盖率报告

Dev*_*oni 3 android jacoco android-gradle-plugin gradle-kotlin-dsl jacoco-plugin

Jacoco代码覆盖率运行良好,直到我将Android Gradle 插件升级到4.2.0,不仅生成了应用程序模块代码覆盖率,对于模块它也不起作用。任何想法如何解决这个问题。

Ric*_*ein 5

升级到 4.2.1 后我遇到了同样的问题。

看起来非检测单元测试的 Jacoco 执行数据文件已重命名为“jacoco.exec”,并移动到模块的顶级目录。

在我的 JacocoReport gradle 任务的配置中,这对我有用:

executionData.from = "${project.projectDir}/jacoco.exec"
Run Code Online (Sandbox Code Playgroud)

注意:仪器测试的执行数据文件尚未重命名或移动。


Mat*_*Pag 5

基于令人惊叹的理查德答案,如果您以前有过这个设置(这对于 Android 中的 Jacoco 进行单元和仪器测试来说是相当标准的)

executionData.from = fileTree(dir: project.buildDir, includes: [
  "jacoco/${testTaskName}.exec",
  "outputs/code_coverage/${variantName}AndroidTest/connected/**/*.ec"
])
Run Code Online (Sandbox Code Playgroud)

您可以切换到 AGP 4.2.X 的等效版本

executionData.from = files([
  "$project.projectDir/jacoco.exec",
  fileTree(dir: project.buildDir, includes: [
    "outputs/code_coverage/${variantName}AndroidTest/connected/**/*.ec"
  ])
])
Run Code Online (Sandbox Code Playgroud)