【发布时间】:2021-04-06 02:23:00
【问题描述】:
我正在使用 Gradle sonarqube 插件,我需要从声纳分析中排除所有测试源(主要目标是从问题/代码气味报告中过滤掉单元测试类)
为此,我使用了如下专用的sonar.test.exclusions 属性,将整个src/test 目录排除在分析之外
sonarqube {
properties {
property("sonar.exclusions" , "")
property("sonar.test.exclusions" , "src/test/**/*.java")
// other sonar properties, omitted
}
}
这按预期工作(测试源被过滤掉)但是:设置此属性时,声纳不会正确计算/报告单元测试的数量。
查看一个非常基本的项目的简单示例:2 个主要源文件,1 个包含 2 个 Junit 测试的测试源文件(还包含一些我不想在报告中看到的问题)
- 不排除:
Sonar 正确报告了我的 2 个单元测试,但它也包含来自单元测试类的代码异味
- 排除:
现在,单元测试中的代码异味已被正确过滤,但我丢失了单元测试计数信息
注意事项:
- 使用 Gradle 6.7、sonarqube 插件版本 3.0 和声纳服务器
Community EditionVersion 8.4.2 - 也尝试了
sonar.exclusions属性:同样的问题 - 所有其他声纳属性均已正确设置并在两种情况下具有相同的值:特别是
sonar.tests、sonar.java.test.binaries、sonar.junit.reportPaths、sonar.jacoco.reportPath
知道如何配置 sonarqube 插件,以正确排除测试源,同时保持单元测试信息可用?
【问题讨论】:
标签: gradle sonarqube sonarqube-scan