如何在Jacoco报表生成中公开“ sourceDirectories”? 成绩任务

我正在关注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'
    ])
}

我得到的错误是:

无法为以下属性设置只读属性“ sourceDirectories”的值 类型的任务':app:jacocoTestReport' org.gradle.testing.jacoco.tasks.JacocoReport。

下面我相信,jacoco下面的字段是私有的。

  • sourceDirectories
  • classDirectories
  • executionData

我的依存关系:classpath "org.jacoco:org.jacoco.core:0.8.4"

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

iCMS 回答:如何在Jacoco报表生成中公开“ sourceDirectories”? 成绩任务

找到答案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'
    ])
}
在最新的gradle版本中不允许使用

(sourceDirectories =),而应使用(sourceDirectories.from)。

本文链接:https://www.f2er.com/1997199.html

大家都在问