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

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

我的gradle配置:

apply plugin: 'jacoco' android { buildTypes { debug { testCoverageEnabled = true } } } jacoco { version '0.7.5.201505241946' } 

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

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

在此处输入图像描述

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

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

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

我刚刚删除它,似乎没有支持Jacoco。

但是对于你的问题,根据@ kolargol00 :

回答

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

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

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

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