Freigeben über


Code-Coverage-Erweiterungen

In diesem Artikel werden alle Microsoft.Testing.Platform-Erweiterungen aufgeführt und erläutert, die sich auf die Codeabdeckungsfunktion beziehen.

Um festzustellen, welcher Anteil des Codes Ihres Projekts durch programmierte Tests wie Komponententests getestet wird, können Sie das Feature „Code Coverage“ verwenden. Um sich effektiv vor Fehlern zu schützen, sollten Sie die Tests für den Großteil Ihres Codes ausführen.

Microsoft Codeabdeckung

Die Microsoft Code Coverage-Analyse ist sowohl für verwalteten (CLR) als auch für nicht verwalteten (nativen) Code möglich. Sowohl statische als auch dynamische Instrumentierung werden unterstützt. Diese Erweiterung wird als Teil des Microsoft.Testing.Extensions.CodeCoverage NuGet-Pakets ausgeliefert.

Hinweis

Die nicht verwaltete (systemeigene) Codeabdeckung ist standardmäßig in der Erweiterung deaktiviert. Verwenden Sie die Flags EnableStaticNativeInstrumentation und EnableDynamicNativeInstrumentation, um diese bei Bedarf zu aktivieren. Weitere Informationen zur nicht verwalteten Codeabdeckung finden Sie unter Statische und dynamische systemeigene Instrumentierung.

Wichtig

Das Paket ist im Lizenzierungsmodell „Closed Source, Free to Use“ der Microsoft .NET-Bibliothek enthalten.

Weitere Informationen über Code Coverage von Microsoft finden Sie auf der entsprechenden GitHub-Seite.

Microsoft Code Coverage bietet die folgenden Optionen:

Auswahlmöglichkeit BESCHREIBUNG
--coverage Erfassen der Code Coverage mit dem Tool dotnet-coverage
--coverage-output Der Name oder Pfad der erzeugten Abdeckungsdatei. Standardmäßig ist die Datei TestResults/<guid>.coverage.
--coverage-output-format Format der Ausgabedatei. Folgende Werte werden unterstützt: coverage, xml und cobertura. Der Standardwert ist coverage.
--coverage-settings XML-Code Coverage-Einstellungen.

Weitere Informationen zu den verfügbaren Optionen finden Sie unter Einstellungen und Beispiele.

Hinweis

Der Standardwert in IncludeTestAssembly "Microsoft.Testing.Extensions.CodeCoverage" lautet false, während er zuvor in VSTest true war. Dies bedeutet, dass Testprojekte standardmäßig ausgeschlossen werden. Weitere Informationen finden Sie in der Codeabdeckungskonfiguration.

Bettdecke

Wichtig

Das coverlet.collector NuGet-Paket wurde speziell für VSTest entwickelt und kann nicht mit Microsoft.Testing.Platformverwendet werden.

Zurzeit gibt es keine Coverlet-Erweiterung, sie können jedoch das globale Tool Coverlet .NET verwenden.

Wenn Sie das globale Coverlet-Tool bereits installiert haben, können Sie jetzt Folgendes ausführen:

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