Sdílet prostřednictvím


Pokrytí kódu

Návod

Pokud používáte Microsoft.Testing.Platform.MSBuild (zahrnutý nepřímo pomocí MSTest, NUnit a xUnit runnerů), rozšíření pokrytí kódu se automaticky zaregistrují při instalaci jejich balíčků NuGet – není nutná žádná úprava kódu.

Pomocí funkce pokrytí kódu můžete určit, jaký podíl kódu projektu testují automatizované testy, jako jsou jednotkové testy. Aby byly účinné proti chybám, měly by vaše testy zahrnovat nebo obsáhnout velkou část vašeho kódu.

Pokrytí kódu Microsoftu

Analýza pokrytí kódu Microsoftu je možná pro spravovaný (CLR) i nespravovaný (nativní) kód. Podporují se statické i dynamické instrumentace. Toto rozšíření vyžaduje balíček NuGet Microsoft.Testing.Extensions.CodeCoverage .

Poznámka:

Ve výchozím nastavení je v rozšíření zakázané nespravované (nativní) pokrytí kódu. V případě potřeby je povolte pomocí příznaků EnableStaticNativeInstrumentation a EnableDynamicNativeInstrumentation. Další informace o nespravovaném pokrytí kódu naleznete v tématu Statické a dynamické nativní instrumentování.

Důležité

Balíček se dodává s uzavřenou knihovnou Microsoft .NET, která je k dispozici zdarma k použití na základě licenčního modelu.

Další informace o pokrytí kódu společnosti Microsoft najdete na stránce GitHub.

Možnosti

Možnost Description
--coverage Ke shromáždění pokrytí kódu použijte nástroj dotnet-coverage.
--coverage-output Název nebo cesta vytvořeného souboru pokrytí. Ve výchozím nastavení je soubor TestResults/<guid>.coverage.
--coverage-output-format Formát výstupního souboru Podporované hodnoty jsou: coverage, xmla cobertura. Výchozí hodnota je coverage.
--coverage-settings nastavení pokrytí kódu XML.

Další informace o dostupných možnostech najdete v tématu settings a samples.

Poznámka:

Výchozí hodnota IncludeTestAssembly v Microsoft.Testing.Extensions.CodeCoverage je false, zatímco se používá v true VSTest. To znamená, že projekty testů jsou ve výchozím nastavení vyloučené. Další informace najdete v tématu Konfigurace pokrytí kódu.

Kompatibilita verzí

Následující tabulka ukazuje kompatibilitu mezi různými verzemi microsoft.Testing.Extensions.CodeCoverage a 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

Poznámka:

Nejlepší kompatibilitu a nejnovější funkce doporučujeme používat společně s nejnovějšími verzemi obou balíčků.

Pokrývka

Coverlet Microsoft Testing Platform Integration (coverlet.MTP) je nativní rozšíření pro Microsoft.Testing.Platform, které implementuje coverlet.collector funkce.

Do testovacího project přidejte balíček NuGet coverlet.MTP:

dotnet add package coverlet.MTP

Pokud chcete shromáždit pokrytí kódu, spusťte testy s příznakem --coverlet:

dotnet test --coverlet

Nebo spusťte testovací spustitelný soubor s příznakem --coverlet :

dotnet exec <test-assembly.dll> --coverlet

Po testovacím spuštění coverage.json se vygeneruje soubor obsahující výsledky v aktuálním adresáři.

Možnosti

Možnost Description
--coverlet Povolte shromažďování dat pokrytí kódu.
--coverlet-output-format <format> Formáty výstupu pro sestavu pokrytí Podporované formáty: json, lcov, opencover, coberturaa teamcity. Zadejte vícekrát pro zahrnutí více formátů.
--coverlet-include <filter> Zahrnout sestavení, která odpovídají filtrům, například [Assembly]Type. Zadejte vícekrát pro přidání dalších filtrů.
--coverlet-include-directory <path> Zahrňte další adresáře pro zdrojové soubory. Pro přidání dalších adresářů zadejte příkaz vícekrát.
--coverlet-exclude <filter> Vylučte sestavení, která odpovídají filtrům, například [Assembly]Type. Zadejte vícekrát pro přidání dalších filtrů.
--coverlet-exclude-by-file <pattern> Vylučte zdrojové soubory, které odpovídají vzorům globu. Zadejte vícekrát pro přidání dalších vzorů.
--coverlet-exclude-by-attribute <attribute> Vylučte metody nebo třídy zdobené konkrétními atributy. Specifikujte vícekrát, abyste přidali další atributy.
--coverlet-include-test-assembly Zahrňte testovací sestavení do sestavy pokrytí.
--coverlet-single-hit Omezte počet přístupů na jeden pro každé místo v kódu.
--coverlet-skip-auto-props Přeskočte automaticky implementované vlastnosti v pokrytí.
--coverlet-does-not-return-attribute <attribute> Atributy, které označují metody jako nevýrazné. Specifikujte vícekrát, abyste přidali další atributy.
--coverlet-exclude-assemblies-without-sources <value> Vylučte sestavení bez zdrojového kódu. Hodnoty: MissingAll, MissingAnya None.

Další informace najdete v dokumentaci coverlet.MTP.