2012-10-11 4 views
0

gallar 플러그인을 사용하여 C# 코드에서 테스트 및 코드 적용 범위를 실행하기 위해 sonar-runner를 사용하고 있습니다. 테스트가 잘 진행되고 있지만 sonar 웹 UI에서 코드 커버리지를 볼 수 없습니다. 다음 Gallio with NCover는 Sonar UI에서 코드 적용 범위가 0 %임을 보여줍니다.

sonar_code_coverage_snapshot

내 소나 설정

은 : 오직 중요한 비트 언급

sonar-project.properties sonar.gallio.coverage.tool = NCover sonar.NCover.installDirectory = C/프로그램 파일/NCover sonar.donet.visualstudio.testProjectPattern = . 테스트 sonar.dotnet.bui ldConfigurations = "Release | x86"

coule이 누락 된 것으로 알고 있습니까?

sonar.projectKey=XXX:XXX 
sonar.projectVersion=trunk 
sonar.projectName=XXX 
sources=. 
sonar.language=cs 
sonar.dotnet.visualstudio.solution.file=Project.sln 
sonar.dotnet.excludeGeneratedCode=false 
sonar.dotnet.4.0.sdk.directory=C:/WIndows/Microsoft.NET/Framework/v4.0.30319 
sonar.dotnet.version=4.0 
# Gallio 
sonar.gallio.mode= 
sonar.gallio.coverage.tool=NCover 
sonar.gallio.runner=IsolatedAppDomain 
sonar.NCover.installDirectory=c:/Program Files/NCover 
sonar.gallio.installDirectory=C:/Program Files/Gallio 
sonar.dotnet.test.assemblies=$(SolutionDir)/../**/bin/**/*.Tests.Unit.dll 
# FXCop 
sonar.fxcop.mode= 
#StyleCop 
sonar.stylecop.mode= 
#NDeps 
sonar.ndeps.mode=skip 

sonar-runner.properties

답변

1

당신은 그게 사실이라면

sonar.dotnet.buildConfigurations = "Release|x86"

가, 빌드 가능성이 바이너리 사이의 매핑을 파악하는 데 필요한 파일을 .PDB 생성되지 말했다 소스 파일.

디버그 빌드로 사용해도 작동합니까?

0

나는 Sonar의 NCover와 같은 동작을 보았습니다. 나는 Sonar가 Gallio의 NCover 주자에 대한 잘못된 인수를 생성하고 있음을 발견했습니다.

Sonar의 러너 출력을 텍스트 파일로 파이핑하여 더 쉽게 인수를 검사 할 수 있습니다 (명령 줄에서 sonar-runner> output.txt를 입력하면됩니다).

당신은 가능성이 당신의 출력과 같은 라인이 표시됩니다

Cannot find file 'MyFirstAssembly;MySecondtAssembly;MyThirdAssembly' 

: 명령 줄에서 수동으로 갈 리오를 통해이 작업을 실행하려고하면

INFO .u.c.CommandExecutor - Executing command: C:\Program Files\Gallio\bin\Gallio.Echo.exe /r:Local /report-directory:E:\Reports\.sonar /report-name-format:gallio-report /report-type:Xml E:\Projects\UnitTests\bin\Release\UnitTests.dll /runner-property:NCoverCoverageFile=E:\Reports\.sonar\coverage-report.xml /runner-property:NCoverArguments=//ias MyFirstAssembly;MySecondtAssembly;MyThirdAssembly 

, 당신은 오류가 발생합니다 이 목록을 MyFirstAssembly *와 같은 단일 항목으로 수동으로 편집하면 모든 항목이 예상대로 작동합니다.

이것은 Sonar가 Gallio에 대해 잘못된 명령 줄 인수를 생성하고 있음을 나타냅니다. NCover가 가장 좋아하는 한 가장 쉬운 해결책은 대신 OpenCover를 사용하는 것이 었습니다.