2012-10-11 2 views
0

J'utilise sonar-runner pour exécuter des tests et la couverture de code sur mon code C# à l'aide de gallio plugin. Les tests fonctionnent correctement, mais je ne vois pas de couverture de code sur l'interface Web du sondeur.Gallio avec NCover montre 0% couverture de code dans l'interface utilisateur Sonar

sonar_code_coverage_snapshot

Mes réglages Sonar sont les suivantes:

sonar-project.properties ne mentionnant que les bits pertinents sonar.gallio.coverage.tool = NCover sonar.NCover.installDirectory = C:/Program Files/NCover sonar.donet.visualstudio.testProjectPattern = .Test sonar.dotnet.bui ldConfigurations = "Release | x86"

Une idée de ce qui manque?

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

Répondre

1

Vous avez dit

sonar.dotnet.buildConfigurations = "Release|x86"

Si cela est vrai, votre build est probablement pas générer des fichiers pdb, qui sont nécessaires pour déterminer la correspondance entre les binaires et vos fichiers sources.

Cela fonctionne-t-il si vous l'essayez avec une version Debug?

0

Je voyais ce même comportement avec NCover dans Sonar. J'ai trouvé que Sonar générait des arguments invalides pour le coureur NCover de Gallio. Essayez d'acheminer la sortie du coureur de Sonar dans un fichier texte afin de pouvoir examiner les arguments plus facilement (sur la ligne de commande, vous pouvez simplement taper sonar-runner> output.txt pour cela).

Vous verrez probablement une ligne comme celui-ci dans la sortie:

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 

Si vous essayez d'exécuter manuellement via Gallio sur la ligne de commande, vous obtiendrez une erreur:

Cannot find file 'MyFirstAssembly;MySecondtAssembly;MyThirdAssembly' 

Si vous modifiez manuellement cette liste en une seule entrée telle que MyFirstAssembly *, tout fonctionnera comme prévu.

Cela semble indiquer que Sonar génère des arguments de ligne de commande non valides pour Gallio. Autant que j'aime NCover, la solution la plus simple était d'utiliser OpenCover à la place.

Questions connexes