是否有方法将包从SonarQube(由gradle +声纳跑步者检测)覆盖报告(由jacoco生成)中排除,而不将它们完全排除在项目之外?
以下是我迄今所做的尝试:
版本信息
Jacoco组态
// 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中根本没有出现的情况。
property 'sonar.exclusions', excludedClasses().join(',')属性设置以将包从jacoco中排除。设置这一设置会导致将包排除在覆盖率分析之外的情况,然而,结果显示0%会累积到糟糕的总分中。
property 'sonar.jacoco.exclusions', excludedClasses().join(',')发布于 2014-12-12 14:45:56
通过在sonar-project.properties中使用sonar.coverage.exclusions属性,我成功地将特定包从覆盖报告中排除在外。属性在正式文档中描述
发布于 2019-02-27 15:04:49
将@Mikalai的回答和@pavel的评论结合起来,使其更易于复制和粘贴:
若要从中排除包或类,请将所有声纳检查(覆盖率、代码气味、bug等)添加到build.gradle中
sonarqube {
properties {
property 'sonar.exclusions', "**/com/some/package/**"
}
}若要仅从Sonar代码覆盖率检查中排除包或类,请将以下内容添加到build.gradle
sonarqube {
properties {
property 'sonar.coverage.exclusions', "**/com/some/package/**"
}
}发布于 2019-11-06 15:48:40
如果您将Gradle 5+与Kotlin DSL一起使用,您可以将这些文件排除在下面这样的覆盖范围之外:
// 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)
}
}https://stackoverflow.com/questions/27033757
复制相似问题