fyr*_*fyr 8 gradle jacoco sonar-runner
有没有办法从SonarQube中排除包(由gradle + sonar-runner配备)覆盖率报告(由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())
}
}
}
Run Code Online (Sandbox Code Playgroud)
用于从声纳分析中排除包的属性设置.将此添加到我的配置会导致包在Sonar中根本不显示的情况.
property 'sonar.exclusions', excludedClasses().join(',')
Run Code Online (Sandbox Code Playgroud)
用于从jacoco中排除包的属性设置.设置此选项会导致包裹被排除在覆盖率分析之外,但会显示0%会累积到不良总分.
property 'sonar.jacoco.exclusions', excludedClasses().join(',')
Run Code Online (Sandbox Code Playgroud)
如果您将 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)
}
}
Run Code Online (Sandbox Code Playgroud)
从 Android 项目的声纳代码覆盖范围中排除资源、资产、自定义包和自动生成的类。
创建如下所示的排除列表
exclusionList = [
//Res and Assets
"src/main/res/**/*.*",
"src/main/assets/**/*.*",
//Auto-Generated
'**/R.class',
'**/R$*.class',
'**/BuildConfig.*',
'**/*Manifest.*',
'android/**/*.*',
'androidx/**/*.*',
// excluded packages
**/com/<your-package-path>/**/*]
Run Code Online (Sandbox Code Playgroud)
向声纳覆盖属性提供排除列表
property 'sonar.coverage.exclusions', exclusionList
Run Code Online (Sandbox Code Playgroud)
笔记:
执行上述更改后,运行 Jacoco 命令并检查声纳门户的覆盖部分。
To combine @Mikalai's answer and @pavel's comment into something that's a bit easier to copy and paste:
To exclude a package or class from all Sonar checks (coverage, code smells, bugs etc), add the following to build.gradle:
sonarqube {
properties {
property 'sonar.exclusions', "**/com/some/package/**"
}
}
Run Code Online (Sandbox Code Playgroud)
要将包或类仅从Sonar代码覆盖率检查中排除,请将以下内容添加到build.gradle:
sonarqube {
properties {
property 'sonar.coverage.exclusions', "**/com/some/package/**"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16615 次 |
| 最近记录: |