android - 如何在 Jacoco 报告生成中公开 "sourceDirectories"?

标签 android gradle jacoco test-coverage

我正在关注 this发布以设置我的项目的 Jacoco 代码覆盖率。

但是我在编写生成报告的任务时遇到错误。

渐变任务

task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'createDebugCoverageReport']) {

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

    def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*']
    def debugTree = fileTree(dir: "$project.buildDir/intermediates/javac/debug", excludes: fileFilter)
    def mainSrc = "$project.projectDir/src/main/java"

    sourceDirectories = files([mainSrc])
    classDirectories = files([debugTree])
    executionData = fileTree(dir: project.buildDir, includes: [
            'jacoco/testDebugUnitTest.exec', 'outputs/code_coverage/debugAndroidTest/connected/**/*.ec'
    ])
}

我得到的错误是:

Cannot set the value of read-only property 'sourceDirectories' for task ':app:jacocoTestReport' of type org.gradle.testing.jacoco.tasks.JacocoReport.

现在我相信以下字段在 jacoco 中是私有(private)的。

  • 来源目录
  • 类目录
  • 执行数据

我的依赖:classpath "org.jacoco:org.jacoco.core:0.8.4"

此外,我尝试更改版本但没有帮助。

最佳答案

找到答案 here

task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'createDebugCoverageReport']) {

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

    def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*']
    def debugTree = fileTree(dir: "$project.buildDir/intermediates/javac/debug", excludes: fileFilter)
    def mainSrc = "$project.projectDir/src/main/java"

    sourceDirectories.from files([mainSrc])
    classDirectories.from files([debugTree])
    executionData.from fileTree(dir: project.buildDir, includes: [
            'jacoco/testDebugUnitTest.exec', 'outputs/code_coverage/debugAndroidTest/connected/**/*.ec'
    ])
}

(sourceDirectories =) in not allowed in latest gradle version instead (sourceDirectories.from) should be used .

关于android - 如何在 Jacoco 报告生成中公开 "sourceDirectories"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62740456/

相关文章:

android - 全屏应用程序中的通知栏问题

gradle - 使用 Gradle 管理依赖项并在遗留 C++ 项目上启动自定义编译脚本

java - 如何解决通过selenium访问网页元素而不滚动页面的问题

function - Gradle-使用Ant中的函数

java - 了解 JaCoCo 覆盖率 XML 报告

android - JaCoCo gradle 插件排除

javascript - Android上的Javascript音频播放已静音

java - 使用参数从 URL 解析 InputStream

android - 连接丢失时重新启动 MediaPlayer

tomcat - 不能 jar -tvf 一个 jar 文件