如何排除指定类的Sonar覆盖率监控,保留其他代码检查
Sonar覆盖率排除方案(保留代码异味检查)
一、单个仓储类通过属性排除
可以给无需测试的仓储类添加[ExcludeFromCodeCoverage]属性(需引用System.Diagnostics.CodeAnalysis命名空间),SonarQube会识别该属性并跳过对这类类的覆盖率统计,但依然会对其进行代码异味、bug等其他规则检查。
示例代码:
using System.Diagnostics.CodeAnalysis; [ExcludeFromCodeCoverage] public class UserQueryRepository { // 类实现代码 }
二、按文件名批量排除(XXXXXQueryRepository.cs)
如果所有目标仓储类都遵循*QueryRepository.cs的命名规则,无需逐个添加属性,可通过Sonar的覆盖率专属排除配置实现批量处理:
- 方式1:在SonarQube项目的网页端设置中,进入「分析范围」→「覆盖率排除」,添加匹配模式:
**/*QueryRepository.cs - 方式2:在项目根目录的
sonar-project.properties文件中添加配置:
sonar.cs.coverage.exclusions=**/*QueryRepository.cs
注意:不要使用全局排除
sonar.exclusions,它会完全跳过所有代码分析;而sonar.cs.coverage.exclusions仅排除覆盖率统计,代码异味、安全漏洞等其他检查会正常执行。
内容的提问来源于stack exchange,提问作者Alexa Adrian
相关产品推荐
相关产品推荐

