如何抑制'common-java'规则的警告

时间:2015-03-30 10:04:15

标签: java sonarqube

我需要暂时忽略规则“单元测试的分支覆盖率不足”(common-java:InsufficientBranchCoverage)。

阅读http://docs.sonarqube.org/display/SONAR/Frequently+Asked+Questions我看到SuppressWarnings适用于所有规则。

的任何组合
@SuppressWarnings("common-java:InsufficientBranchCoverage")
@SuppressWarnings("InsufficientBranchCoverage")
@SuppressWarnings("java:InsufficientBranchCoverage")

对我不起作用。

我使用Sonar 5.0,Sonar Java插件3.0。

修改

可以从声纳UI中抑制(移除)此警告。我看到两个解决方案

  • 为我的质量配置文件禁用“单位测试的分支覆盖率不足”规则。缺点是,该规则对整个项目禁用,而不仅仅针对单个类

  • 在浏览问题明细时将问题标记为忽略。这忽略了问题的单一发生。缺点是,需要在每个声纳项目中标记问题(我们有每个分支项目)。当我需要删除警告时,我必须再次在声纳UI中为每个项目执行此操作。

1 个答案:

答案 0 :(得分:6)

不幸的是,这是不可能的。

InsufficientBranchCoverage规则直接应用于文件级别,因此不会链接到文件中的任何特定行。要使用@SuppressWarnings删除与给定规则键相关的问题,规则必须在类或方法级别应用(如文档中所述)。

请注意,为了保证分析结果的一致性,我们无法在文件级别禁用该问题,因为它可能通过隐藏本质上完全合法的问题而结束(例如{{1}的情况有多个类的文件)。