Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Tipp
Wenn Sie Microsoft.Testing.Platform.MSBuild (transitiv von MSTest, NUnit und xUnit runners eingeschlossen) verwenden, werden Codeabdeckungserweiterungen automatisch registriert, wenn Sie ihre NuGet-Pakete installieren – keine Codeänderungen erforderlich.
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. Für diese Erweiterung ist das NuGet-Paket "Microsoft.Testing.Extensions.CodeCoverage " erforderlich.
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.
Von Bedeutung
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.
Options
| Option | Description |
|---|---|
--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.
Versionskompatibilität
Die folgende Tabelle zeigt die Kompatibilität zwischen verschiedenen Versionen von Microsoft.Testing.Extensions.CodeCoverage und 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 |
Hinweis
Um die beste Kompatibilität und die neuesten Features zu erzielen, empfiehlt es sich, die neuesten Versionen beider Pakete zusammen zu verwenden.
Bettdecke
Die Coverlet Microsoft Testing Platform Integration (coverlet.MTP) ist eine native Erweiterung für Microsoft.Testing.Platform, die coverlet.collector-Funktionalität implementiert.
Fügen Sie das coverlet.MTP NuGet-Paket zu Ihrem Testprojekt hinzu:
dotnet add package coverlet.MTP
Führen Sie Ihre Tests mit der Kennzeichnung --coverlet aus, um die Codeabdeckung zu erfassen.
dotnet test --coverlet
Oder führen Sie ihre ausführbare Testdatei mit der --coverlet Kennzeichnung aus:
dotnet exec <test-assembly.dll> --coverlet
Nach der Testausführung wird eine coverage.json Datei mit den Ergebnissen im aktuellen Verzeichnis generiert.
Options
| Option | Description |
|---|---|
--coverlet |
Aktivieren sie die Codeabdeckungsdatensammlung. |
--coverlet-output-format <format> |
Ausgabeformate für den Bericht über die Abdeckung. Unterstützte Formate: json, , lcov, opencover, coberturaund teamcity. Geben Sie den Befehl mehrfach an, um mehrere Formate einzuschließen. |
--coverlet-include <filter> |
Fügen Sie Assemblys hinzu, die mit Filtern übereinstimmen, z. B. [Assembly]Type. Wiederholen Sie die Angabe, um weitere Filter hinzuzufügen. |
--coverlet-include-directory <path> |
Fügen Sie zusätzliche Verzeichnisse für Quelldateien ein. Geben Sie mehrmals an, um weitere Verzeichnisse hinzuzufügen. |
--coverlet-exclude <filter> |
Schließen Sie Assemblys aus, die mit Filtern übereinstimmen, z. B. [Assembly]Type. Wiederholen Sie die Angabe, um weitere Filter hinzuzufügen. |
--coverlet-exclude-by-file <pattern> |
Schließen Sie Quelldateien aus, die mit Globmustern übereinstimmen. Spezifizieren Sie mehrmals, um weitere Muster hinzuzufügen. |
--coverlet-exclude-by-attribute <attribute> |
Ausschließen von Methoden oder Klassen, die mit bestimmten Attributen versehen sind. Machen Sie mehrfache Angaben, um weitere Attribute hinzuzufügen. |
--coverlet-include-test-assembly |
Schließen Sie die Testbaugruppe in den Abdeckungsbericht ein. |
--coverlet-single-hit |
Beschränken Sie die Anzahl der Treffer für jede Position im Code auf eine. |
--coverlet-skip-auto-props |
Überspringen Sie automatisch implementierte Eigenschaften in der Abdeckung. |
--coverlet-does-not-return-attribute <attribute> |
Attribute, die Methoden als nicht zurückgebend kennzeichnen. Machen Sie mehrfache Angaben, um weitere Attribute hinzuzufügen. |
--coverlet-exclude-assemblies-without-sources <value> |
Schließen Sie Assemblys ohne Quellcode aus. Werte: MissingAll, MissingAny, und None. |
Weitere Informationen finden Sie im Deckblatt. MTP-Dokumentation.