Как я могу создать свои собственные правила C # для SonarQube? - PullRequest
0 голосов
/ 21 декабря 2018

Я проводил некоторые исследования по этому вопросу.То, что я нашел, это список довольно хороших образцов, но для других языков здесь .

Я также посмотрел на sonar-dotnet .Но это не похоже на другие реализации.

Наконец, и, честно говоря, вероятно, мой последний шанс, я быстро взглянул на Пользовательские правила FxCop , и я не уверенчто было бы правильным путем.

То, что я пытаюсь сделать, это просто простое правило c #, которое можно просмотреть, например, , это предопределено sonar .

Я имею в виду, с несовместимым кодом и совместимым решением .

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

sonar-custom-rules-examples , на которые вы указали, написаны на Java и используют синтаксические анализаторы, написанные на Java для различных целевых языков. sonar-dotnet анализаторы для C # и VB.NET написаны на C # с использованием Roslyn framework , предоставленного Microsoft.

Если вы хотите написать свои собственные пользовательские правиладля C # тогда написание анализатора Roslyn, безусловно, самый простой способ сделать это (Roslyn заменил FxCop, который сейчас устарел).Тем не менее, существуют десятки бесплатных сторонних анализаторов Roslyn, так что, возможно, кто-то уже написал хотя бы некоторые из правил, которые вы хотите.Взгляните на NuGet , чтобы увидеть, что доступно.

Далее, вы хотите, чтобы проблемы, возникшие с анализатором Roslyn, появились в SonarQube.Если вы используете новые версии SonarQube (v7.4 +), SonarScanner для MSBuild (v4.4 +) и плагин SonarC # (v7.6 +), то проблемы, поднятые сторонними анализаторами Roslyn, будут автоматическиимпортироваться как общие вопросы .См. документы для получения дополнительной информации.

Общие проблемы имеют несколько существенных ограничений, так же как невозможность выбора правил для запуска в пользовательском интерфейсе SonarQube.Если вы хотите более полнофункциональный опыт (или если вы используете более старую версию SonarQube), вы можете использовать SonarQube Roslyn SDK , чтобы сгенерировать пользовательский плагин SonarQube, который оборачивает анализатор Roslyn.Использовать SDK очень просто: это исполняемый файл, который вы запускаете против анализатора Roslyn, и он генерирует банку плагина SonarQube для вас.

0 голосов
/ 21 декабря 2018

Ну, это зависит.Если вы хотите создать свои собственные правила, я бы сказал, что Пользовательские правила FxCop - правильный путь.Хотя я немного озадачен.Какое правило вы имеете в виду, которого еще не существует.Если вас не устраивает предопределенный, вы можете дополнительно использовать наборы правил StyleCop и / или ReSharper .Оба плагина являются настраиваемыми.Однако, когда я настраиваю SQ, я обычно отключаю значительную часть существующего правила, поскольку они скорее загрязняют результаты всеми видами стилей.

...