结合androidTest的jacoco覆盖并测试

pas*_*ssy 11 android unit-testing code-coverage gradle jacoco

自从'com.android.tools.build:gradle:1.1.0'我将大部分java测试代码androidTest移到该test文件夹后发布,因为JVM测试要快得多.但我不能移动所有测试.我真的需要设备测试,因为有些ContentProvider东西.

在开始迁移之前,我已经有100%的代码覆盖率.当我正在运行jacoco代码覆盖时,我得到40%的androidTest文件夹和71%的test文件夹.我的代码经过100%测试,但我没有报告证明这一点.

有没有办法将两份报告合并?我找到了JacocoMerge,但无法让它工作.

这是androidTest文件夹的输出:build/outputs/reports/coverage/debug/index.html

这里是 使用此gradle任务生成的test文件夹 的输出build/reports/jacoco/generateJacocoTestReports/html/index.html:

def coverageSourceDirs = [
        '../library/src/main/java'
]

task generateJacocoTestReports(type: JacocoReport, dependsOn: "test") {
    group = "Reporting"
    description = 'Generate Jacoco Robolectric unit test coverage reports'

    classDirectories = fileTree(
            dir: '../library/build/intermediates/classes/debug',
            excludes: ['**//*R.class',
                       '**//*R$*.class',
                       '***/*//*$ViewInjector*.*',
                       '**//*BuildConfig.*',
                       '**//*Manifest*.*']
            )
    sourceDirectories = files(coverageSourceDirs)
    additionalSourceDirs = files(coverageSourceDirs)
    executionData = files('../library/build/jacoco/testDebug.exec')
}
Run Code Online (Sandbox Code Playgroud)

Pav*_*dka 6

不确定你是否仍然需要这个,但我最近发布了Gradle插件,它可以帮助你:https://github.com/paveldudka/JacocoEverywhere


小智 0

如果您将 Jenkins 与 JaCoCo 插件一起使用,您只需在“执行文件路径”中配置所有 jacoco.exec 和 emma.ec 文件即可报告组合覆盖率。

默认情况下,connectedAndroidTest 将在“输出”中的某个位置生成 emma.ec 文件。