Megosztás a következőn keresztül:


Kódlefedettség

Jótanács

A Microsoft.Testing.Platform.MSBuild (amely tranzitíven az MSTest, NUnit és xUnit futók által kerül be) használatakor a kódlefedettség kiterjesztések automatikusan regisztrálódnak, amikor a NuGet csomagokat telepítitek – kódmódosításra nincs szükség.

A kódlefedettségi funkcióval meghatározhatja, hogy a project kódjának hány százalékát tesztelik kódolt tesztek, például egységtesztek. A hibák elleni hatékony védelem érdekében a teszteknek gyakorolniuk kell, vagy terjedniük kell a kód nagy hányadára.

Microsoft-kódlefedettség

A Microsoft Code Coverage elemzése felügyelt (CLR) és nem felügyelt (natív) kód esetén egyaránt lehetséges. Mind a statikus, mind a dinamikus instrumentáció támogatott. Ehhez a bővítményhez a Microsoft.Testing.Extensions.CodeCoverage NuGet csomag szükséges.

Megjegyzés:

A nem felügyelt (natív) kódlefedettség alapértelmezés szerint le van tiltva a bővítményben. Szükség esetén aktiválásához használja a jelzőket EnableStaticNativeInstrumentation és EnableDynamicNativeInstrumentation. További információért a nem felügyelt kódlefedettségről lásd: Statikus és dinamikus natív műszerészet.

Fontos

A csomagot a Microsoft .NET könyvtárral szállítják, amely zárt forráskódú, de ingyenesen használható licencmodellt alkalmaz.

A Microsoft-kódlefedettségről további információt a GitHub oldalán talál.

Beállítások

Lehetőség Description
--coverage Gyűjtse össze a kódlefedettségeket a dotnet-coverage eszközzel.
--coverage-output A létrehozott lefedettségi fájl neve vagy elérési útja. Alapértelmezés szerint a fájl TestResults/<guid>.coverage.
--coverage-output-format Kimeneti fájlformátum. A támogatott értékek a következők: coverage, xmlés cobertura. Az alapértelmezett érték coverage.
--coverage-settings XML-kódlefedettségi beállítások.

Az elérhető beállításokkal kapcsolatos további információkért lásd: settings és samples.

Megjegyzés:

A Microsoft.Testing.Extensions.CodeCoverage alapértelmezett értéke IncludeTestAssembly, false, míg korábban a VSTestben true volt. Ez azt jelenti, hogy a tesztprojektek alapértelmezés szerint ki vannak zárva. További információ: Code Coverage configuration.

Verziók kompatibilitása

Az alábbi táblázat a Microsoft.Testing.Extensions.CodeCoverage és a Microsoft.Testing.Platform különböző verziói közötti kompatibilitást mutatja be:

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

Megjegyzés:

A legjobb kompatibilitás és a legújabb funkciók érdekében ajánlott mindkét csomag legújabb verzióit együtt használni.

Ágytakaró

A Coverlet Microsoft Testing Platform integráció (coverlet.MTP) a Microsoft.Testing.Platform natív bővítménye, amely implementálja a coverlet.collector funkciót.

Adja hozzá a coverlet.MTP NuGet-csomagot a teszt projektjéhez:

dotnet add package coverlet.MTP

A kódlefedettség gyűjtéséhez futtassa a teszteket a --coverlet jelzővel:

dotnet test --coverlet

Vagy futtassa a futtatható tesztet a --coverlet jelölővel:

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

A teszt futtatása után egy coverage.json , az eredményeket tartalmazó fájl jön létre az aktuális könyvtárban.

Beállítások

Lehetőség Description
--coverlet Kódlefedettségi adatgyűjtés engedélyezése.
--coverlet-output-format <format> A lefedettségi jelentés kimeneti formátumai. Támogatott formátumok: json, lcov, opencover, coberturaés teamcity. Többszöri megadás esetén több formátumot is megadhat.
--coverlet-include <filter> Olyan szerelvényeket is tartalmazzon, amelyek megfelelnek a szűrőknek, például [Assembly]Type. Adjon meg többször további szűrőket.
--coverlet-include-directory <path> Adjon meg további könyvtárakat a forrásfájlokhoz. Adja meg többször az utasítást további könyvtárak hozzáadásához.
--coverlet-exclude <filter> Ne tartalmazza azokat az assemblyket, amelyek megfelelnek a szűrőknek, például [Assembly]Type. Adjon meg többször további szűrőket.
--coverlet-exclude-by-file <pattern> Zárja ki a gömbmintáknak megfelelő forrásfájlokat. Több alkalommal adhat meg további mintákat.
--coverlet-exclude-by-attribute <attribute> Zárja ki az adott attribútumokkal dekorált metódusokat vagy osztályokat. Adjon meg többször további attribútumokat.
--coverlet-include-test-assembly Vegye fel a tesztszerelvényt a lefedettségi jelentésbe.
--coverlet-single-hit A találatok számát a kód minden helyéhez egy-egyre korlátozhatja.
--coverlet-skip-auto-props Hagyja ki az automatikusan implementált tulajdonságokat a lefedettségben.
--coverlet-does-not-return-attribute <attribute> Olyan attribútumok, amelyek olyan metódusokat jelölnek, amelyek nem adnak vissza értéket. Adjon meg többször további attribútumokat.
--coverlet-exclude-assemblies-without-sources <value> Zárja ki a forráskód nélküli összeállításokat. Értékek: MissingAll, MissingAnyés None.

További információkért lásd a coverlet.MTP-dokumentáció.