Udostępnij za pomocą


Rozszerzenia pokrycia kodu

W tym artykule wymieniono i wyjaśniono wszystkie rozszerzenia Microsoft.Testing.Platform związane z możliwościami pokrycia kodu.

Możesz użyć funkcji pokrycia kodu, aby określić, jaka część kodu projektu jest testowana przez kodowane testy, takie jak testy jednostkowe. Aby skutecznie zabezpieczyć się przed błędami, testy powinny przeprowadzać lub obejmować dużą część kodu.

Pokrycie kodu firmy Microsoft

Analiza pokrycia kodu firmy Microsoft jest możliwa zarówno w przypadku kodu zarządzanego (CLR) i niezarządzanego (natywnego). Obsługiwane są zarówno instrumentacja statyczna, jak i dynamiczna. To rozszerzenie jest dostarczane jako część pakietu NuGet Microsoft.Testing.Extensions.CodeCoverage.

Notatka

Pokrycie kodu natywnego (niezarządzanego) jest domyślnie wyłączone w rozszerzeniu. Aby włączyć, w razie potrzeby użyj flag EnableStaticNativeInstrumentation i EnableDynamicNativeInstrumentation. Aby uzyskać więcej informacji na temat pokrycia kodu niezarządzanego, zobacz Static and dynamic native instrumentation.

Ważny

Pakiet jest dostarczany z biblioteką Microsoft .NET korzystającą z zamkniętego modelu licencjonowania typu open source, bezpłatnego w użyciu.

Aby uzyskać więcej informacji na temat pokrycia kodu firmy Microsoft, odwiedź stronę GitHub.

Microsoft Code Coverage zapewnia następujące opcje:

Opcja Opis
--coverage Zbierz dane na temat pokrycia kodu przy użyciu narzędzia dotnet-coverage.
--coverage-output Nazwa lub ścieżka utworzonego pliku pokrycia. Domyślnie plik jest TestResults/<guid>.coverage.
--coverage-output-format Format pliku wyjściowego. Obsługiwane wartości to: coverage, xmli cobertura. Wartość domyślna to coverage.
--coverage-settings ustawienia pokrycia kodu XML.

Aby uzyskać więcej informacji na temat dostępnych opcji, zobacz ustawienia i przykłady .

Notatka

Domyślna wartość IncludeTestAssembly w Microsoft.Testing.Extensions.CodeCoverage to false, podczas gdy w VSTest była to true. Oznacza to, że projekty testowe są domyślnie wykluczone. Aby uzyskać więcej informacji, zobacz Konfiguracja pokrycia kodu.

Zgodność wersji

W poniższej tabeli przedstawiono zgodność między różnymi wersjami biblioteki Microsoft.Testing.Extensions.CodeCoverage i 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

Notatka

Aby uzyskać najlepszą zgodność i najnowsze funkcje, zaleca się używanie najnowszych wersji obu pakietów razem.

Coverlet

Ważny

Pakiet NuGet coverlet.collector został zaprojektowany specjalnie dla programu VSTest i nie może być używany z Microsoft.Testing.Platform.

Obecnie nie ma rozszerzenia Coverlet, ale można użyć globalnego narzędzia .NET Coverlet .

Zakładając, że narzędzie globalne Coverlet zostało już zainstalowane, możesz teraz uruchomić następujące polecenie:

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