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

Upgrade to AGP 4.2.0 ,unable to generate Jacoco code coverage report

Jacoco 代码覆盖率在我升级 Android Gradle Plugin4.2.0 ,不仅生成应用程序模块代码覆盖率,对于模块它不起作用。 知道如何解决这个问题。

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

非检测 单元测试的 Jacoco 执行数据文件似乎已重命名为 'jacoco.exec',并移至模块的顶级目录。

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

executionData.from = "${project.projectDir}/jacoco.exec"

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

基于惊人的 Richard ,如果您以前有此设置(这对于 Android 中使用 Jacoco 的单元和仪器测试来说是非常标准的)

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

您可以切换到 AGP 4 的等效版本。2.X

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