M.R*_*uti 6 gradle sonarqube sonarqube-scan
我正在使用 Gradle sonarqube插件,我需要从声纳分析中排除所有测试源(主要目标是从问题/代码气味报告中过滤掉单元测试类)
为此,我使用了如下专用属性,从分析中sonar.test.exclusions排除整个目录src/test
sonarqube {
properties {
property("sonar.exclusions" , "")
property("sonar.test.exclusions" , "src/test/**/*.java")
// other sonar properties, omitted
}
}
Run Code Online (Sandbox Code Playgroud)
这按预期工作(测试源被过滤掉)但是:设置此属性时,声纳无法正确计算/报告单元测试的数量。
请参阅一个非常基本的项目的简单示例:2 个主要源文件,1 个包含 2 个 Junit 测试的测试源文件(还包含一些我不想在报告中看到的问题)
Sonar 正确报告了我的 2 个单元测试,但它还包括单元测试类中的代码味道
现在,单元测试中的代码气味已被正确过滤,但我丢失了单元测试计数信息

笔记:
Community EditionVersion 8.4.2sonar.exclusions:同样的问题sonar.tests是sonar.java.test.binaries,,,,sonar.junit.reportPathssonar.jacoco.reportPath知道如何配置 sonarqube 插件,以排除正确的测试源,同时保持单元测试信息可用吗?
我同意 Chriki 的答案,但只同意第一部分:使用sonar.test.exclusions不是好方法。
我不同意最后一部分:使用sonar.issue.ignore.multicriteriaGradle 是完全可能的
https://www.baeldung.com/sonar-exclude-violations#using-sonar-projectproperties
尝试这样的事情(虽然我没有测试过):
sonarqube {
properties {
property "sonar.issue.ignore.multicriteria", "e1"
property "sonar.issue.ignore.multicriteria.e1.resourceKey", "src/test/java/**/*"
property "sonar.issue.ignore.multicriteria.e1.ruleKey", "*"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1835 次 |
| 最近记录: |