【问题标题】:Jacoco-Not excluding filesJacoco-不排除文件
【发布时间】:2019-01-04 07:46:53
【问题描述】:

我正在使用 Gradle 和 Jacoco。这是我的build.gradle

jacocoTestReport {
    reports {
        xml.enabled true
        csv.enabled false
    }

    afterEvaluate {
        classDirectories = files(classDirectories.files.collect {
            fileTree(dir: it, exclude: [
                    '**/TrackingDataRecord.java'
                    ])
        })
    }
}
test.finalizedBy(project.tasks.jacocoTestReport)

我正在尝试排除该 java 文件,但它仍然显示 SonarQube 的覆盖范围。这是为什么呢?

【问题讨论】:

    标签: gradle sonarqube jacoco


    【解决方案1】:

    Gradle 任务 jacocoTestReport 通过分析 JaCoCo exec 文件和 Java class 文件生成 XML/HTML/CSV 报告。

    SonarQube 不使用 Gradle 任务 jacocoTestReport 生成的报告,而是通过分析 JaCoCo exec 文件和 Java class 文件生成自己的报告 - 作为来自 https://docs.sonarqube.org/display/PLUG/Code+Coverage+by+Unit+Tests+for+Java+Project 的证明引用:

    | Property                 | Example            | Description
    | sonar.jacoco.reportPaths | target/jacoco.exec | Import JaCoCo code coverage reports. Set the property to the path of the JaCoCo .exec
    

    这可能会在未来发生变化,SonarQube 可能会开始导入 XML 报告 - 请参阅 https://jira.sonarsource.com/browse/MMF-1362

    关于 SonarQube 中的排除,请参阅 https://docs.sonarqube.org/display/SONAR/Narrowing+the+Focus

    忽略代码覆盖率

    您可以防止某些文件被单元测试考虑到代码覆盖率。

    为此,请转至管理 > 常规设置 > 分析范围 > 代码覆盖并设置覆盖排除属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      相关资源
      最近更新 更多