SonarQube是否忽略isSuppressedInSource?

时间:2016-04-27 17:09:35

标签: sonarqube sonarqube-msbuild-runner

我正在使用SonarQube Scanner for MSBuild 2.0和SonarQube 5.4。我已经为Rosar Wintellect.Analyzers NuGet包添加了一个SonarQube插件到SonarQube服务器,并将规则添加到我的SonarQube项目使用的质量配置文件中。在C#源代码中,我使用#pragma禁用了“Wintellect003”规则(然后我在内联然后在GlobalSuppressions.cs中尝试了SuppressMessage属性)。该规则在Visual Studio 2015和msbuild 14中成功禁用,但SonarQube不尊重我已禁用该规则的事实(对于这一行代码 - 我没有在SonarQube或规则集中禁用该规则)。

我可以看到MsBuild.SonarQube.Runner.exe正在识别抑制,因为在“结束”阶段它生成RoslynCA.json文件以发送到SonarQube,它包括以下部分: -

"ruleId": "Wintellect003",
"kind": "warning",
"locations": [
  {
    "analysisTarget": [
      {
        "uri": "file:\/\/\/C:\/CS5Tests/Mycode.cs",
        "region": {
          "startLine": 920,
          "startColumn": 17,
          "endLine": 923,
          "endColumn": 118
        }
      }
    ]
  }
],
"shortMessage": "'if' statements must have braces",
"fullMessage": "If and else statements must use braces even for single line results",
"isSuppressedInSource": true,

正如你所看到的那样,“isSuppressedInSource”是真的。不幸的是SonarQube不尊重这个设置。有什么想法吗?

(我已经尝试停止SonarQube服务器,删除data \ es文件夹以清除缓存并重新启动SonarQube服务器,但这没有帮助。)

1 个答案:

答案 0 :(得分:2)

C#5.2插件增加了对此的支持:

https://groups.google.com/d/msg/sonarqube/0gghnIQf3XU/aEMSwMkvBAAJ

  

我们想发布SonarQube C#Plugin 5.2版。

     

什么是新的?

     

现在支持通过[SuppressMessage]进行问题抑制

     

所有FxCop问题都在SonarQube中导入,即使在无法映射回特定文件的字段上也是如此

     

添加6条新规则   此版本缩小了您在Visual Studio和SonarQube中看到的问题之间的差距。