Delen via


Extensies voor codedekking

In dit artikel worden alle extensies van Microsoft.Testing.Platform beschreven die betrekking hebben op de mogelijkheid voor codedekking.

U kunt de functie voor codedekking gebruiken om te bepalen welk deel van de code van uw project wordt getest door gecodeerde tests, zoals eenheidstests. Als u effectief wilt beschermen tegen fouten, moeten uw tests uw code testen of een groot deel ervan afdekken.

Microsoft-codebedekking

Microsoft Code Coverage-analyse is mogelijk voor zowel beheerde (CLR) als niet-beheerde (systeemeigen) code. Zowel statische als dynamische instrumentatie worden ondersteund. Deze extensie wordt geleverd als onderdeel van Microsoft.Testing.Extensions.CodeCoverage NuGet-pakket.

Notitie

Onbeheerde (systeemeigen) codedekking is standaard uitgeschakeld in de extensie. Gebruik vlaggen EnableStaticNativeInstrumentation en EnableDynamicNativeInstrumentation om deze indien nodig in te schakelen. Zie Statische en dynamische systeemeigen instrumentatie-voor meer informatie over onbeheerde codedekking.

Belangrijk

Het pakket wordt geleverd met de gesloten bron Microsoft .NET-bibliotheek die een licentiemodel voor gratis gebruik biedt.

Zie de GitHub-paginavoor meer informatie over de dekking van Microsoft-code.

Microsoft Code Coverage biedt de volgende opties:

Optie Beschrijving
--coverage Verzamel de code-dekking met behulp van de dotnet-coverage tool.
--coverage-output De naam of het pad van het geproduceerde dekkingsbestand. Het bestand is standaard TestResults/<guid>.coverage.
--coverage-output-format Uitvoerbestandindeling. Ondersteunde waarden zijn: coverage, xmlen cobertura. De standaardwaarde is coverage.
--coverage-settings XML-code dekkingsinstellingen.

Zie instellingen en voorbeeldenvoor meer informatie over de beschikbare opties.

Notitie

De standaardwaarde van IncludeTestAssembly Microsoft.Testing.Extensions.CodeCoverage is false, terwijl deze voorheen in VSTest was true . Dit betekent dat testprojecten standaard worden uitgesloten. Zie codedekkingsconfiguratie voor meer informatie.

Versiecompatibiliteit

In de volgende tabel ziet u de compatibiliteit tussen verschillende versies van Microsoft.Testing.Extensions.CodeCoverage en Microsoft.Testing.Platform:

Microsoft.Testing.Extensions.CodeCoverage Microsoft.Testing.Platform
18.1.x 2.0.x
18.0.x 1.8.x
17.14.x 1.6.2

Notitie

Voor de beste compatibiliteit en nieuwste functies is het raadzaam om de nieuwste versies van beide pakketten samen te gebruiken.

Sprei

Belangrijk

Het coverlet.collector NuGet-pakket is speciaal ontworpen voor VSTest en kan niet worden gebruikt met Microsoft.Testing.Platform.

Er is momenteel geen Coverlet-extensie, maar u kunt Coverlet .NET global toolgebruiken.

Ervan uitgaande dat u het globale hulpprogramma Coverlet al hebt geïnstalleerd, kunt u nu het volgende uitvoeren:

coverlet .\bin\Debug\net8.0\TestProject2.dll --target "dotnet" --targetargs "test .\bin\Debug\net8.0\TestProject2.dll --no-build"