Je souhaite mesurer la couverture de code de mes tests XUnit-Tests dans une application ASP.NET Core. Tooling for .NET Core dans Visual Studio 2015 est l'aperçu 2 et la couverture de code ne fonctionne pas jusqu'à présent.
Le billet de blog http://dotnet Thoughts.net/measuring-code-coverage-of-aspnet-core-applications-using-opencover/ de février montre une solution de contournement en utilisant la ligne de commande de couverture ouverte. Je recherche un moyen plus intégré dans Visual Studio.
Quelqu'un a-t-il entendu parler d'un moyen plus efficace/plus intégré de mesurer la couverture de code en combinaison avec XUnit?
Je viens d'essayer la version 2016.3 EAP 4 de ReSharper (aperçu de l'accès anticipé). Outre l'exécution du test unitaire, dotCover renvoie maintenant des informations sur la couverture de code pour mes projets de test .net.
Ajoutez le package NuGetMicrosoft.CodeCoverage 1.0.1 à votre project.json
.
Je travaille sur le modèle pour Asp.NET
et en ce moment, je travaille sur les tests unitaires, j'ai donc vu votre message. Vous pouvez voir projet/configuration ici .
Disclaimer: Ces étapes ont été données à partir de Mesure de la couverture d'ASP.NET avec OpenCover - DotNetThoughts .
Même si l’affiche parle de ce site, j’ai pensé qu’il serait toujours préférable d’avoir ces étapes ici pour la prospérité.
NOTE: Ces instructions, bien que adaptées à un système d'exploitation Windows, devraient facilement fonctionner pour tout système d'exploitation pris en charge par OpenCover et ReportGenerator.
@echo off
SET dotnet="C:\Program Files\dotnet\dotnet.exe"
SET opencover="C:\Program Files (x86)\OpenCover\OpenCover.Console.exe"
SET reportgenerator="C:\Program Files (x86)\OpenCover\ReportGenerator\ReportGenerator.exe"
SET targetargs="test"
SET filter="+[*]NAMESPACE.* -[*.Test]* -[xunit.*]* -[FluentValidation]*"
SET coveragefile=Coverage.xml
SET coveragedir=Coverage
REM Run code coverage analysis
%opencover% -oldStyle -register:user -target:%dotnet% -output:%coveragefile% -targetargs:%targetargs% -filter:%filter% -skipautoprops -hideskipped:All
REM Generate the report
%reportgenerator% -targetdir:%coveragedir% -reporttypes:Html;Badges -reports:%coveragefile% -verbosity:Error
REM Open the report
start "report" "%coveragedir%\index.htm"
+[*]NAMESPACE.*
autant de fois que nécessaire pour chaque espace de noms.Le codecoverage fonctionne pour moi, pour .Net Core en utilisant Microsoft.CodeCoverage
comme mentionné ci-dessus.
Vérifiez que vous avez ajouté le nuget Microsoft.CodeCoverage
à votre projet test
Vérifiez également le fichier project.json sur votre projet principal, l'attribut debugType doit être "complet" au lieu de "portable"
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true,
"debugType": "full"
},
Ce fixé pour moi
Coverlet ( https://github.com/tonerdo/coverlet ) est un nouveau projet récemment apparu. Cela fonctionne aux côtés de msbuild et donne une solution simple pour la couverture
OpenCover + ReportGenerator. Installez-les en tant que packages NUGET dans l'un de vos projets de test (une fois, car ils doivent simplement figurer dans le dossier du package).
Vous pouvez ensuite placer ce fichier powershel https://github.com/rpokrovskij/opencover4vs.ps1 dans votre dossier de solution et le configurer avec vos projets test à l'aide de path globing, par exemple.
$ TestProjectsGlobbing = @ (, '*. Test.csproj')
Ensuite, vous pouvez l'exécuter en tant que script Powershel standard. Le résultat devrait apparaître dans le dossier de solution dans\TestsResults\report\index.html