SonarQube игнорирует isSuppressedInSource?

Я использую сканер SonarQube для MSBuild 2.0 с SonarQube 5.4. Я добавил плагин SonarQube для пакета NuGet Roslyn Wintellect.Analyzers на сервер SonarQube и добавил правила в профиль качества, который использует мой проект SonarQube. В исходном коде C# я отключил правило "Wintellect003" с помощью #pragma (а затем я попробовал атрибут SuppressMessage как встроенный, так и затем в GlobalSuppressions.cs). Правило успешно отключено в 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 ответ

Решение

Плагин C# 5.2 добавляет поддержку для этого:

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

Мы хотели бы выпустить SonarQube C# Plugin версии 5.2.

Что нового?

Подавление ошибок через [SuppressMessage] теперь поддерживается

Все проблемы FxCop импортируются в SonarQube, даже те, которые относятся к полям, которые не могут быть сопоставлены с определенным файлом

Добавляет 6 новых правил. Этот выпуск закрывает пробел между проблемами, которые вы видите в Visual Studio и SonarQube.

Другие вопросы по тегам