Utvidgningar för kodtäckning

I den här artikeln visas och förklaras alla Microsoft.Testing.Platform-tillägg relaterade till funktionen för kodtäckning.

Du kan använda funktionen för kodtäckning för att avgöra vilken andel av projektets kod som testas av kodade tester, till exempel enhetstester. För att effektivt försvara dig mot buggar bör dina tester omfatta eller täcka en stor del av din kod.

Microsofts kodtäckning

Microsoft Code Coverage-analys är möjlig för både hanterad (CLR) och ohanterad (intern) kod. Både statisk och dynamisk instrumentering stöds. Det här tillägget levereras som en del av Microsoft.Testing.Extensions.CodeCoverage NuGet-paketet.

Anteckning

Ohanterad (intern) kodtäckning är inaktiverad i tillägget som standard. Använd flaggor EnableStaticNativeInstrumentation och EnableDynamicNativeInstrumentation för att aktivera den om det behövs. Mer information om ohanterad kodtäckning finns i Statisk och dynamisk intern instrumentation.

Viktig

Paketet levereras med Microsoft .NET-biblioteket, som har en licensmodell med stängd källkod som tillåter fri användning.

Mer information om Microsofts kodtäckning finns på sidan GitHub.

Microsoft Code Coverage innehåller följande alternativ:

Alternativ Beskrivning
--coverage Samla in kodtäckningen med hjälp av verktyget dotnet-coverage.
--coverage-output Namnet eller sökvägen till den skapade täckningsfilen. Som standard är filen TestResults/<guid>.coverage.
--coverage-output-format Utdatafilformat. Värden som stöds är: coverage, xmloch cobertura. Standardvärdet är coverage.
--coverage-settings XML-kodtäckningsinställningar.

Mer information om tillgängliga alternativ finns i inställningar och exempel.

Anteckning

Standardvärdet IncludeTestAssembly för i Microsoft.Testing.Extensions.CodeCoverage är false, medan det brukade vara true i VSTest. Det innebär att testprojekt exkluderas som standard. Mer information finns i Konfiguration av kodtäckning.

Versionskompatibilitet

Följande tabell visar kompatibiliteten mellan olika versioner av Microsoft.Testing.Extensions.CodeCoverage och 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

Anteckning

För bästa kompatibilitet och de senaste funktionerna rekommenderar vi att du använder de senaste versionerna av båda paketen tillsammans.

Sängöverkast

Viktig

NuGet-paketet coverlet.collector är särskilt utformat för VSTest och kan inte användas med Microsoft.Testing.Platform.

Det finns för närvarande inget Coverlet-tillägg, men du kan använda det globala verktyget Coverlet .NET.

Förutsatt att du redan har installerat det globala Coverlet-verktyget kan du nu köra:

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