首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Sonarrunner和Gradle从Jacoco报告中排除包

使用Sonarrunner和Gradle从Jacoco报告中排除包
EN

Stack Overflow用户
提问于 2014-11-20 07:10:15
回答 7查看 37.2K关注 0票数 20

是否有方法将包从SonarQube(由gradle +声纳跑步者检测)覆盖报告(由jacoco生成)中排除,而不将它们完全排除在项目之外?

以下是我迄今所做的尝试:

版本信息

  • SonarQube 4.5.1
  • 第2.2级

Jacoco组态

代码语言:javascript
复制
// JaCoCo test coverage configuration
tasks.withType(Test) { task ->
    jacoco {
        append = false

        // excluded classes from coverage defined in above configuration
        excludes = excludedClasses()
    }

    jacocoTestReport {
        doFirst {
            classDirectories = fileTree(dir: "${buildDir}/classes/main/").exclude(excludedClasses())
        }
    }

}

声纳流道配置

属性设置以排除Sonar分析中的包。将此添加到我的配置中会导致软件包在Sonar中根本没有出现的情况。

代码语言:javascript
复制
property 'sonar.exclusions', excludedClasses().join(',')

属性设置以将包从jacoco中排除。设置这一设置会导致将包排除在覆盖率分析之外的情况,然而,结果显示0%会累积到糟糕的总分中。

代码语言:javascript
复制
property 'sonar.jacoco.exclusions', excludedClasses().join(',')
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-12-12 14:45:56

通过在sonar-project.properties中使用sonar.coverage.exclusions属性,我成功地将特定包从覆盖报告中排除在外。属性在正式文档中描述

票数 31
EN

Stack Overflow用户

发布于 2019-02-27 15:04:49

将@Mikalai的回答和@pavel的评论结合起来,使其更易于复制和粘贴:

若要从中排除包或类,请将所有声纳检查(覆盖率、代码气味、bug等)添加到build.gradle

代码语言:javascript
复制
sonarqube {
    properties {
        property 'sonar.exclusions', "**/com/some/package/**"
    }
}

若要仅从Sonar代码覆盖率检查中排除包或类,请将以下内容添加到build.gradle

代码语言:javascript
复制
sonarqube {
    properties {
        property 'sonar.coverage.exclusions', "**/com/some/package/**"
    }
}
票数 16
EN

Stack Overflow用户

发布于 2019-11-06 15:48:40

如果您将Gradle 5+与Kotlin DSL一起使用,您可以将这些文件排除在下面这样的覆盖范围之外:

代码语言:javascript
复制
// configure the SonarQube plugin
sonarqube {
    val exclusions = listOf(
        "**/com/some/package/**",
        "**/all/files/under/package/*",
        "**/com/some/package/OneClass.kt"
    )

    // exclude the directories only from coverage (but not from other analysis)
    // https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-gradle/
    properties {
        property("sonar.coverage.exclusions", exclusions)
    }
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27033757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档