自定义SonarQube服务器单元测试文件被误分析配置不生效如何解决
SonarQube测试目录误纳入源码分析问题解决方案
配置失效原因
- 路径匹配规则错误:当前配置的
component-a/**/src仅匹配src目录本身,不会递归覆盖目录下的所有源码文件,需要添加/**后缀匹配目录内所有子文件 - 冗余配置冲突:同时配置根目录作为
sources根路径、包含规则、排除规则,多规则叠加时优先级逻辑容易产生混乱,重叠路径判定会导致测试目录被误识别为源码
修正后配置
推荐直接指定源码范围,减少冗余规则避免冲突:
sonar.sources=component-a/**/src/**,component-b/src/**,component-c/src/** sonar.tests=component-a/**/tests/**,component-b/tests/**,component-c/tests/** // 兜底配置,确保测试目录不会被误算入源码 sonar.exclusions=component-a/**/tests/**,component-b/tests/**,component-c/tests/**
生效验证
执行分析时查看控制台日志的Indexing files部分,确认文件会被正确标记为source或者test;也可以在分析完成后进入SonarQube项目后台的「项目设置 > 代码范围」页,核对源码和测试目录的匹配结果是否符合预期。
额外提醒
如果项目使用Maven、Gradle等构建工具,优先使用对应SonarQube插件的自动目录识别能力,不需要手动配置上述路径,识别准确率更高。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

