FileNotFound Jacoco / Gradle

FileNotFound Jacoco / Gradle

我有以下设置:

apply plugin: 'jacoco'

jacoco {
    toolVersion = "0.7.1.201405082137"
}

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

和以下任务:

task jacocoTestReport(type:JacocoReport, dependsOn: "assembleStagingDebugAndroidTest") {
    group = "Reporting"

    onlyIf = {
        true
    }
    description = "Generate Jacoco coverage reports for staging debug"
    classDirectories = fileTree(
        dir: '../app/build/intermediates/classes/staging/debug',
        excludes: ['**/R.class',
                   '**/R$*.class',
                   '**/*$ViewInjector*.*',
                   '**/*$MembersInjector*.*',
                   '**/BuildConfig.*',
                   '**/Manifest*.*']
   )

   additionalSourceDirs = files(coverageSourceDirs)
   sourceDirectories = files(coverageSourceDirs)
   executionData = files('../app/build/jacoco/testDebug.exc')

    reports {
        xml.enabled = true
        html.enabled = true
    }
}

但是执行时:

gradle jacocoTestReport --stacktrace --debug --info

我不断得到:

app/build/jacoco/testDebug.exc (No such file or directory)

但是:

clean createStagingDebugCoverageReport --stacktrace

工作正常。我试图使用自定义任务从覆盖率报告中省略一些不需要的 类 。为了不生成 exec 文件我做错了什么/我如何找到它们在我的包中的位置?我查看了构建目录文件夹,但没有找到它们。

提前致谢!

所以它是一个 .ec 文件塞在 /build/outputs/code-coverage/connected/flavors/staging/ 中,我不得不调整测试以查看 '../app/build/intermediates/coverage-instrumented-classes/classes/staging/debug' 以生成报告,但我终于让它工作了...现在我必须努力排除我不想要的 类。

task jacocoStagingDebugTestReport(type:JacocoReport, dependsOn: ["spoonStagingDebugAndroidTest"]) {
    group = "Reporting"

    onlyIf = {
        true
    }
    description = "Generate Jacoco coverage reports for staging debug"
    classDirectories = fileTree(
            dir: '../app/build/intermediates/coverage-instrumented-classes/classes/staging/debug',
            excludes: ['/ollie/*$ModelAdapter.*']
    )

    additionalSourceDirs = files(coverageSourceDirs)
    sourceDirectories = files(coverageSourceDirs)
    executionData = files('build/outputs/code-coverage/connected/flavors/staging/coverage.ec')

    reports {
        xml.enabled = true
        html.enabled = true
    }
}