【问题标题】:0% code coverage on espresso tests with JaCoCo and Gradle使用 JaCoCo 和 Gradle 进行 espresso 测试的 0% 代码覆盖率
【发布时间】:2016-05-22 03:07:59
【问题描述】:

在我的 espresso 测试的 JaCoCo 代码覆盖率报告中,所有行和分支都被遗漏了。我在使用 gradle 1.5.0 构建的 Android 应用程序中使用 JaCoCo。

我的gradle配置:

apply plugin: 'jacoco'

android {
   buildTypes {
      debug {
         testCoverageEnabled = true
      }
   }
}

jacoco {
   version '0.7.5.201505241946'
}

我关注了这篇博文:Test coverage report for Android application

当我运行createDebugCoverageReport 时,会在正确的文件夹(build/reports/coverage/flavor/debug/index.html)中生成报告。但是,当我打开覆盖率报告时,我的代码覆盖率在每个指令和分支上都是 0%。一切都“错过”了。

首先我认为问题可能是源代码和测试代码的位置,但它们位于/src/main/java//src/androidTest/java/

有人知道如何解决这个问题吗?

【问题讨论】:

  • 你解决了这个问题吗?
  • 天哪,对我来说这是三星手机,模拟器运行良好!

标签: android gradle android-gradle-plugin android-espresso jacoco


【解决方案1】:

我个人对 Jacoco 的体验并不好。它没有正确覆盖,并且在添加新测试时它不会更新覆盖范围。

我刚删了,好像不支持Jacoco了。

不过,根据@kolargol00

Answer

您使用过时版本的 JaCoCo 插件有什么特别的原因吗?对于 Java 8 支持,您必须至少使用 0.7.0 版本(请参阅changelog)。

在您的配置中,报告目标绑定到验证阶段,因此运行 mvn test 不会生成任何报告,因为它不运行验证阶段 (test phase comes before verify)。您必须使用mvn verify 来执行测试并生成报告。

JaCoCo 项目提供了示例 Maven 配置。你可以试试“this POM file for a JAR project runs JUnit tests under code coverage and creates a coverage report”。

【讨论】:

    【解决方案2】:

    根据我的经验,如果任何一个测试用例失败,那么我们会得到 0% 的覆盖率报告,确保您的所有测试都通过

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      • 2017-05-31
      相关资源
      最近更新 更多