android jacoco覆盖空与gradle

Áko*_*róy 6 android code-coverage gradle jacoco

我正在尝试让jacoco为我的android测试项目创建一个代码覆盖率报告.我在build.gradle中有以下内容:

apply plugin: 'com.android.application'
apply plugin: 'jacoco'
...
jacoco {
    toolVersion = "0.7.1.201405082137"
}
...
android {
    buildTypes {
        release {
        }
        debug {
            testCoverageEnabled true
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行gradlew -i createDebugCoverageReport时,我得到一个覆盖率报告,但它是空的.gradle执行结束如下:

:androidTest:connectedAndroidTest (Thread[main,5,main]) completed. Took 2 mins 36.951 secs.
:androidTest:createDebugCoverageReport (Thread[main,5,main]) started.
:androidTest:createDebugCoverageReport
Executing task ':androidTest:createDebugCoverageReport' (up-to-date check took 0.006 secs) due to:
  Output file /home/akos/src/androidTest/build/outputs/reports/coverage/debug has changed.
  Output file /home/akos/src/androidTest/build/outputs/reports/coverage/debug/index.html has been removed.
  Output file /home/akos/src/androidTest/build/outputs/reports/coverage/debug/.resources/package.gif has been removed.
[ant:reportWithJacoco] Loading execution data file /home/akos/src/androidTest/build/outputs/code-coverage/connected/coverage.ec
[ant:reportWithJacoco] Writing bundle 'debug' with 3 classes
:androidTest:createDebugCoverageReport (Thread[main,5,main]) completed. Took 0.215 secs.

BUILD SUCCESSFUL

Total time: 4 mins 53.467 secs
Run Code Online (Sandbox Code Playgroud)

实际上,上面引用的coverage.ec文件为空(长度为0)

在目录build/intermediates/coverage-instrumented-classes /中,我似乎有了已检测的类文件

这是gradle 2.1

我究竟做错了什么?

nar*_*n z 6

尝试使用Nexus device(5或5x)生成调试覆盖率报告,它将完美地工作.我面临同样的问题Samsung devices(coverage.ec是空的)但是之后我运行它Nexus 5x并且一切正常.


emi*_*niz 1

我使用相同的 gradle.build,只需在终端中输入以下命令即可。它以 html 页面的形式提供了覆盖率报告和测试结果。

$./gradlew createDebugCoverageReport

另一个建议是;输入终端

$./gradlew --gui

它会打开一个 GUI 窗口,您可以找到正确的命令。