【问题标题】:Exclude package from Jacoco report using gradle使用 gradle 从 Jacoco 报告中排除包
【发布时间】:2018-09-22 14:37:17
【问题描述】:

我已经尝试过这里和另一个讨论板上共享的两种方法。

在 jacocoTestReport 内部 - 在 blog 中建议

    afterEvaluate { 
       classDirectories = files(classDirectories.files.collect { 
           fileTree(
             dir: "build/classes/main", exclude: ['*/com.X.Y.P/**']) 
        }) 
    }

在 sonarqube 内部,如彼此建议的那样 question

property "sonar.coverage.exclusions", "*/com.X.Y.P/**"

但它们都不适合我。

Gradle version -    2.13
jacoco toolVersion = "0.7.4.201502262128"
sonarqube-gradle-plugin:1.2
springBootVersion = '1.5.9.RELEASE'

【问题讨论】:

    标签: gradle sonarqube jacoco sonar-runner


    【解决方案1】:

    试试这个(基本上,将"build/classes/main" 替换为it

    jacocoTestReport {
        afterEvaluate {
            classDirectories = files(classDirectories.files.collect {
                fileTree(dir: it, exclude: '**/Q*')
            })
        }
    }
    

    【讨论】:

    • 我进行了更改,但仍然无法正常工作。这是代码: jacocoTestReport{ additionalSourceDirs = files(sourceSets.main.allJava.srcDirs) 报告 { html.enabled true xml.enabled false csv.enabled false html.destination "build/reports/jacoco/html" } afterEvaluate { classDirectories = files (classDirectories.files.collect { fileTree(dir: it, exclude: '*/com.xyz.domain') }) } executionData = files('build/jacoco/test.exec') }
    • */com.xyz.domain 不会匹配太多,包分隔符是 /。试试**/com/xyz/domain/**
    • 感谢 ToYonos,我尝试使用 **/com/xyz/domain/****/com/xyz/**,没有任何变化,所有包都包含在报告中。
    • 这是我在 SO 上找到的唯一解决方案,它解决了我忽略几个生成的类的问题,我不想测量它们的覆盖范围。谢谢!
    猜你喜欢
    • 2015-01-17
    • 2013-01-18
    • 2017-01-20
    • 2013-06-27
    • 2023-03-28
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 2015-08-24
    相关资源
    最近更新 更多