4

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

4

2 回答 2

6

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

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

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

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

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

于 2021-05-20T18:26:59.903 回答
3

基于惊人的 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"
  ])
])
于 2021-06-17T11:18:58.520 回答