使用JaCoCo和Gradle进行espresso测试的代码覆盖率为0%

Han*_*aud 6 android gradle jacoco android-gradle-plugin android-espresso

在我的esCopresso测试的JaCoCo代码覆盖率报告中,错过了所有线路和分支.我在一个使用gradle 1.5.0构建的Android应用程序中使用JaCoCo.

我的gradle配置:

apply plugin: 'jacoco'

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

jacoco {
   version '0.7.5.201505241946'
}
Run Code Online (Sandbox Code Playgroud)

我关注这篇博文:Android应用程序的测试覆盖率报告.

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

在此输入图像描述

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

任何人都知道如何解决这个问题?

Tej*_*jjD 1

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

我刚刚删除了它,似乎不支持 Jacoco。

对于你的问题,根据@kolargol00

回答

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

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

JaCoCo 项目提供了示例 Maven 配置。您可以尝试“这个 JAR 项目的 POM 文件在代码覆盖率下运行 JUnit 测试并创建覆盖率报告”。