【问题标题】:Why coverage tool JaCoCo reports 100% coverage?为什么覆盖率工具 JaCoCo 报告 100% 覆盖率?
【发布时间】:2022-01-03 14:00:13
【问题描述】:

我通过编辑应用级 build.gradle 将 JaCoCo 添加到我的项目中:

plugins{
    ...
    id 'jacoco'
}

jacoco {
   toolVersion = "0.8.7"
}

buildTypes {

    debug {
        testCoverageEnabled = true
    }
}

android {
   //...
}

dependencies{
  ...
}

configurations.all{
resolutionStrategy {
    eachDependency { details ->
        if ('org.jacoco' == details.requested.group) {
            details.useVersion "0.8.7"
        }
    }
   }
}

我的项目中确实没有任何测试,所以我期望覆盖率非常低。

但是运行gradlew createDebugCoverageReport 会导致 100% 的覆盖率?我期待 5% 或更低,因为我现在还没有写任何测试。怎么了?

【问题讨论】:

  • 我不知道 JaCoCo,但快速的 google 搜索告诉我,您应该能够逐行查看测试涵盖哪些行的报告。你能看看这是否能说明问题,如果没有,也许在你的问题中张贴截图? baeldung.com/jacoco
  • 如果你没有测试并且你有 100% 的覆盖率,那么 jacoco 库正在分析零行代码是有道理的。也许确保 jacoco 知道在哪里可以找到您的代码,并且您告诉它要测试什么。

标签: android gradle jacoco android-jacoco


【解决方案1】:

对于给定的 gradle 输出没有简单的答案。但是,您可以在项目的构建目录中检查您的 Html 报告。您将看到包含详细信息的报告。 4-5个月前,新版本的AGP(Android Gradle Plugin)发布。它包含测试和 Jacoco 的根本变化。您的测试(即使您没有测试)可能会受到这些更改的影响。您正在寻找的解决方案也取决于您的项目设置。如果您的项目是多模块的,那么您很可能需要配置您的 gradle 任务来创建您的 Jacoco 报告。当前的 Jacoco 任务 (createDebugCoverageReport) 可能会错过您希望在结果中看到的类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多