Heeft Visual Studio codedekking voor unit tests?

Ik gebruik de Visual Studio 2015 Community-editie en ik weet dat het de optie heeft om unit-tests te maken om de code te testen, maar ik zie geen optie om de codedekking te testen, dus ik zou graag weten of Visual Studio deze optie heeft of dat ik een plug-in van derden moet gebruiken.

Als ik een oplossing van derden moet gebruiken, zou dat dan een goede optie zijn?


Antwoord 1, autoriteit 100%

Alleen Visual Studio 2015 Enterprise heeft ingebouwde codedekking. Zie de functiematrixvoor details.

U kunt de OpenCover.UI-extensiegebruiken voor code dekkingscontrole in Visual Studio. Het ondersteunt MSTest, nUnit en xUnit.

De nieuwe versie kan worden gedownload van hier (release-opmerkingen).


Antwoord 2, autoriteit 56%

Als u Visual Studio 2017 gebruikt en deze vraag tegenkomt, kunt u AxoCover overwegen. Het is een gratis VS-extensie die OpenCover integreert, maar VS2017 ondersteunt (het lijkt ook in actieve ontwikkeling te zijn. +1).

VS-extensiepagina

https://github.com/axodox/AxoTools


Antwoord 3, autoriteit 42%

Toni‘s antwoord is erg nuttig, maar ik dacht een snelle start voor totale beginners om de dekkingsbeoordeling te testen (zoals ik ben).

Zoals reeds vermeld, hebben Visual Studio Professional en Community Editions geen ingebouwde ondersteuning voor testdekking. Het kan echter vrij gemakkelijk worden verkregen. Ik zal een stapsgewijze configuratie schrijven voor gebruik met NUnit-tests binnen Visual Studion 2015 Professional.

  1. Installeer OpenCover NUGet-componentmet behulp van de NuGet-interface

  2. Ontvang OpenCoverUI-extensie. Dit kan rechtstreeks vanuit Visual Studio worden geïnstalleerd met behulp van Tools -> Extensies en updates

  3. Configureer OpenCoverUI om de juiste uitvoerbare bestanden te gebruiken door naar Tools -> Opties -> OpenCover.UI-opties -> Algemeen

NUnit-pad:moet verwijzen naar het bestand `nunit-console.exe. Dit is alleen te vinden in de NUnit 2.xx-versie, die kan worden gedownload van hier.

OpenCover-pad: dit moet verwijzen naar het geïnstalleerde pakket, meestal <solution path>\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe

  1. Installeer ReportGenerator NUGet-pakket

  2. Toegang tot OpenCover Test Explorervanuit het OpenCover-menu. Probeer van daaruit tests te ontdekken. Als het niet lukt, controleer dan de uitvoervensters voor meer details.

  3. Controleer de OpenCover-resultaten (in het OpenCover-menu) voor meer details. Het zal details zoals codedekking in een boomstructuur weergeven. Je kunt ook code markeren die wel of niet bedekt is (klein pictogram in de linkerbovenhoek).

OPMERKING:zoals vermeld, ondersteunt OpenCoverUI de nieuwste hoofdversie van NUnit (3.xx) niet. Als er echter niets specifieks voor deze versie wordt gebruikt in tests, zal het zonder problemen werken, ongeacht of je de NUnit 3.xx-versie hebt geïnstalleerd.

Dit omvat de snelle start. Zoals al vermeld in de opmerkingen, check voor meer geavanceerde configuratie en automatisering dit artikel.


Antwoord 4, autoriteit 12%

Voor iedereen die op zoek is naar een eenvoudige oplossing in Visual Studio Community 2019, Fine Code Coverage is eenvoudig, maar het werkt goed.

Het kan geen nauwkeurige cijfers geven over de precieze dekking, maar het zal vertellen welke lijnen worden bedekt met groen/rode dakgoten.


Antwoord 5, autoriteit 4%

Zoals reeds vermeld, kunt u Fine Code Coveragegebruiken om coverlet-uitvoer. Als u een xunit test project(dotnet new xunit) aanmaakt, vindt u de coverlet-referentie al aanwezig in het csproj-bestand omdat Coverletis de standaard dekkingstool voor elke .NET Core- en >= .NET 5-applicatie.

Microsoft heeft een voorbeeld met ReportGeneratordie dekkingsrapporten converteert die zijn gegenereerd door coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov of lcov omzetten in voor mensen leesbare rapporten in verschillende formaten.

Voorbeeldrapport:

voer hier de afbeeldingsbeschrijving in

Hoewel het artikel zich richt op C# en xUnit als testframework, zouden zowel MSTest als NUnit ook werken.

Gids:

https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-code-coverage?tabs=windows#generate-reports

Als u codedekking in .xml-bestanden wilt, kunt u elk van deze opdrachten uitvoeren:

dotnet test --collect:"XPlat Code Coverage"
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura

Other episodes