2016-06-05 2 views
2

Я настраиваю сборку TeamCity для выполнения анализа SonarQube нашего решения C#. Я уже преодолел один барьер, используя -Dsonar.sourceEncoding=UTF-8, чтобы позволить Sonar распознавать заголовок спецификации utf-8 в наших файлах. Моя нынешняя проблема связана с C# 6.0 синтаксиса, как интерполяции строк, которые, кажется, не распознаются Sonar и дает мне «ошибку разбору»:Настройка SonarQube для распознавания синтаксиса C# 6.0

[09:38:39][Step 4/6] 04:38:39.338 ERROR - Unable to parse file: C:\BuildAgent\work\.........\DataLayerTests.cs 
[09:38:39][Step 4/6] 04:38:39.338 ERROR - Parse error at line 44 column 46: 
[09:38:39][Step 4/6] 
[09:38:39][Step 4/6] 43:    Assert.IsNotNull(results, "The method returned NULL instead of any results."); 
[09:38:39][Step 4/6] -->    Assert.AreEqual(1, results.Count, $"The method returned {results.Count} results instead of 1."); 

Есть ли какие-либо дополнительные параметры командной строки, что мне нужно использовать с sonar-runner для обеспечения совместимости? Или это связано с версией плагина C#, который мы используем?

Я нашел этот вопрос other, который связан только касательно. Этот вопрос заключается в том, чтобы включить проблемы, которые обнаружил анализатор Roslyn, чтобы вернуться в SonarQube. Мой вопрос намного более общий, чем тот, поскольку я еще не на том этапе, когда Sonar полностью понимает мой синтаксис!

+0

Какую версию плагина C# вы используете? Почему вы имеете дело непосредственно с 'sonar-runner'? Почему вы не используете [SonarQube Scanner для MSBuild] (http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild)? – Tamas

+0

Мы используем SonarQube 4.5.6 с версией 3.2 плагина C#. Мы вызываем Runner SonarQube через шаг сборки в TeamCity, поэтому моя ссылка на 'sonar-runner' (TeamCity вызывает это автоматически). –

+1

Я вижу. Это очень старый плагин C# (pre-Roslyn). Обновление до последней версии (или версии 3.4+) позволило бы решить проблемы C# 6. Ознакомьтесь с версиями здесь: https://jira.sonarsource.com/browse/SONARCS/?selectedTab=com.atlassian.jira.jira-projects-plugin:versions-panel – Tamas

ответ

2

Плагин C# был переписан в версии 3.4 для использования Roslyn внутри страны. Таким образом, любая более поздняя версия будет обрабатывать (анализировать) функции C# 6. Кроме того, я рекомендую обновить до последней версии, поскольку мы постоянно добавляем новые правила и исправляем известные проблемы.

Вы можете проверить историю версий here.

Смежные вопросы