2016-06-05 6 views
2

Teamcity 빌드를 설정하여 C# 솔루션의 SonarQube 분석을 실행합니다. 나는 하나의 장애물을 통해 -Dsonar.sourceEncoding=UTF-8을 사용하여 Sonar가 파일에서 utf-8 BOM 헤더를 인식하도록 허용했습니다. 내 현재의 문제는 수중 음파 탐지기가 인식하지 않는 것 문자열 보간처럼, C# 6.0 구문과 관련이있다 나를 "구문 분석 오류"주고있다 :C# 6.0 구문을 인식하도록 SonarQube 구성

[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# 플러그인을 사용하고 있습니까? 왜 '소나 러너'와 직접 거래하는거야? [SonarQube Scanner for MSBuild] (http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild)를 사용하지 않는 이유는 무엇입니까? – Tamas

+0

우리는 SonarQube 4.5.6을 C# 플러그인 3.2 버전과 함께 사용하고 있습니다. 우리는 TeamCity의 빌드 단계를 통해 SonarQube Runner를 호출합니다. 따라서 sonar-runner (TeamCity에서는 자동으로 호출합니다)를 참조합니다. 나는 –

+1

를 본다. 그것은 매우 오래된 C# 플러그인입니다 (Roslyn 이전). 최신 (또는 3.4+) 버전으로 업그레이드하면 C# 6 문제가 해결됩니다. 여기 버전을 확인하십시오 : https://jira.sonarsource.com/browse/SONARCS/?selectedTab=com.atlassian.jira.jira-projects-plugin:versions-panel – Tamas

답변

2

C# 플러그인은 Roslyn을 내부적으로 사용하기 위해 버전 3.4에서 다시 작성되었습니다. 따라서 이후 버전에서는 C# 6 기능을 처리 (구문 분석)합니다. 또한 새로운 규칙을 지속적으로 추가하고 알려진 문제를 해결하기 때문에 최신 버전으로 업데이트하는 것이 좋습니다.

버전 기록 here을 확인할 수 있습니다.