dotnet-coverage code coverage segédprogram
Ez a cikk a következőre vonatkozik: ✔️ .NET Core 3.1 SDK és újabb verziók
Szinopszis
dotnet-coverage <command> [-h, --help] [--version]
Leírás
Az dotnet-coverage
eszköz:
- Lehetővé teszi egy futó folyamat kódlefedettségi adatainak platformfüggetlen gyűjtését.
- Platformfüggetlen egyesítést biztosít a kódlefedettségi jelentésekhez.
Beállítások
-h|--help
Parancssori súgót jelenít meg.
--version
Megjeleníti a dotnet-coverage segédprogram verzióját.
Telepítés
A NuGet-csomag legújabb kiadási verziójának dotnet-coverage
telepítéséhez használja a dotnet eszköz telepítési parancsát:
dotnet tool install --global dotnet-coverage
Parancsok
Parancs |
---|
dotnet-coverage merge |
dotnet-coverage collect |
dotnet-coverage connect |
dotnet-coverage pillanatkép |
dotnet-lefedettség leállítása |
dotnet-lefedettségi eszköz |
dotnet-coverage uninstrument |
dotnet-coverage merge
A merge
parancs több kódlefedettségi jelentést egyesít egybe. Ez a parancs minden platformon elérhető. Ez a parancs a következő kódlefedettségi jelentésformátumokat támogatja:
coverage
cobertura
xml
Szinopszis
dotnet-coverage merge
<files>...
[--remove-input-files]
[-o|--output <output>] [-f|--output-format <output-format>]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>]
[-dco|--disable-console-output] [--nologo]
[-?|-h|--help]
Argumentumok
<files>
A bemeneti kód lefedettségi jelentései.
Beállítások
--remove-input-files
Eltávolítja az összes egyesített bemeneti lefedettségi jelentést.
-r, --recursive
A .NET 7 SDK és a korábbi verziók csak alkönyvtárakban keresnek lefedettségi jelentéseket.
-o|--output <output>
Beállítja a kódlefedettségi jelentés kimeneti fájlját.
-f|--output-format <output-format>
A kimeneti fájl formátuma. Támogatott értékek:
coverage
,xml
éscobertura
. Az alapértelmezett értékcoverage
(bináris formátum, amely a Visual Studióban nyitható meg).-l|--log-file <log-file>
Beállítja a naplófájl elérési útját. Ha megad egy könyvtárat (a végén egy elérésiút-elválasztóval), a rendszer új naplófájlt hoz létre az elemzés alatt álló minden folyamathoz.
-ll|--log-level <log-level>
Beállítja a naplószintet. Támogatott értékek:
Error
,Info
ésVerbose
.-dco|--disable-console-output
Letiltja a konzol kimenetét.
--nologo
Ne jelenjen meg a Kódlefedettség szalagcím.
dotnet-coverage collect
A collect
parancs segítségével kódlefedettségi adatokat gyűjthet minden .NET-folyamathoz és annak alfolyamataihoz. Gyűjthet például kódlefedettségi adatokat egy konzolalkalmazáshoz vagy egy Blazor-alkalmazáshoz. Ez a parancs támogatja a dinamikus és statikus kialakítást. A statikus rendszerállapot minden platformon elérhető. A beállítással include-files
megadhatja a statikusan rendszerezett fájlokat. A dinamikus rendszerállapot windowsos (x86, x64 és Arm64), Linux (x64) és macOS (x64) rendszeren érhető el. A parancs csak a .NET-modulokat támogatja. A natív modulok nem támogatottak.
Szinopszis
A collect
parancs két módban futtatható.
Parancs mód
A collect
parancs összegyűjti az argumentum által végrehajtott adott folyamat kódlefedettségét command
.
dotnet-coverage collect
<command> <args>...
[-s|--settings <settings>] [-id|--session-id <session-id>]
[-if|--include-files <include-files>] [-o|--output <output>] [-f|--output-format <output-format>]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>]
[-dco|--disable-console-output] [--nologo]
[-?|-h|--help]
Kiszolgáló mód
A collect
parancs egy kiszolgálót üzemeltet a kódlefedettségi gyűjteményhez. Az ügyfelek parancson keresztül connect
csatlakozhatnak a kiszolgálóhoz.
dotnet-coverage collect
[-s|--settings <settings>] [-id|--session-id <session-id>]
[-sv|--server-mode] [-b|--background] [-t|--timeout]
[-if|--include-files <include-files>] [-o|--output <output>] [-f|--output-format <output-format>]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>]
[-dco|--disable-console-output] [--nologo]
[-?|-h|--help]
Argumentumok
<command>
Az a parancs, amelyhez kódlefedettségi adatokat kell gyűjteni.
<args>
A parancs parancssori argumentumai.
Beállítások
-s|--settings <settings>
Beállítja az XML-kódlefedettségi beállítások elérési útját.
-id|--session-id <session-id>
Megadja a kódlefedettségi munkamenet azonosítóját. Ha nincs megadva, az eszköz véletlenszerű GUID-t hoz létre.
-sv|--server-mode
Elindítja a gyűjtőt kiszolgáló módban. Az ügyfelek a paranccsal csatlakozhatnak a
connect
kiszolgálóhoz.-b|--background
Új háttérfolyamatban elindítja a kódlefedettségi gyűjteménykiszolgálót. Az ügyfelek a paranccsal csatlakozhatnak a
connect
kiszolgálóhoz.-t|--timeout
Időtúllépés (ezredmásodpercben) az ügyfelek és a kiszolgáló közötti folyamatközi kommunikációhoz.
-if|--include-files <include-files>
A statikusan rendszerezett fájlok listáját adja meg.
-o|--output <output>
Beállítja a kódlefedettségi jelentés kimeneti fájlját.
-f|--output-format <output-format>
A kimeneti fájl formátuma. Támogatott értékek:
coverage
,xml
éscobertura
. Az alapértelmezett értékcoverage
(bináris formátum, amely a Visual Studióban nyitható meg).-l|--log-file <log-file>
Beállítja a naplófájl elérési útját. Ha megad egy könyvtárat (a végén egy elérésiút-elválasztóval), a rendszer új naplófájlt hoz létre az elemzés alatt álló minden folyamathoz.
-ll|--log-level <log-level>
Beállítja a naplószintet. Támogatott értékek:
Error
,Info
ésVerbose
.-dco|--disable-console-output
Letiltja a konzol kimenetét.
--nologo
Ne jelenjen meg a Kódlefedettség szalagcím.
dotnet-coverage connect
A connect
parancs a meglévő kiszolgálóhoz való csatlakozásra szolgál, és kódlefedettségi adatokat gyűjt minden .NET-folyamathoz és annak alfolyamataihoz. Gyűjthet például kódlefedettségi adatokat egy konzolalkalmazáshoz vagy egy Blazor-alkalmazáshoz. A parancs csak a .NET-modulokat támogatja. A natív modulok nem támogatottak.
Feljegyzés
A parancs dinamikus rendszerezést fog használni a Windowson (x86, x64 és Arm64), Linuxon (x64) és macOS-en (x64) elérhető összes alfolyamathoz. Ha statikusan kell beállítania bármely .NET-modul használati instrument
parancsát (a megfelelő munkamenet-azonosító beállítással) a connect
parancs végrehajtása előtt.
Szinopszis
dotnet-coverage connect
<session> <command> <args>...
[-b|--background] [-t|--timeout]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>]
[-dco|--disable-console-output] [--nologo]
[-?|-h|--help]
Argumentumok
<session>
A parancs által
collect
üzemeltetett kiszolgáló munkamenet-azonosítója.<command>
Az a parancs, amelyhez kódlefedettségi adatokat kell gyűjteni.
<args>
A parancs parancssori argumentumai.
Beállítások
-b|--background
Elindítja az ügyfelet egy új háttérfolyamatban.
-t|--timeout
Időtúllépés (ezredmásodpercben) az ügyfél és a kiszolgáló közötti folyamatközi kommunikációhoz.*
-l|--log-file <log-file>
-l|--log-file <log-file>
Beállítja a naplófájl elérési útját. Ha megad egy könyvtárat (a végén egy elérésiút-elválasztóval), a rendszer új naplófájlt hoz létre az elemzés alatt álló minden folyamathoz.
-ll|--log-level <log-level>
Beállítja a naplószintet. Támogatott értékek:
Error
,Info
ésVerbose
.-dco|--disable-console-output
Letiltja a konzol kimenetét.
--nologo
Ne jelenjen meg a Kódlefedettség szalagcím.
dotnet-coverage pillanatkép
Létrehoz egy lefedettségi fájlt a meglévő kódlefedettségi gyűjteményhez.
Szinopszis
dotnet-coverage snapshot
<session>
[-r|--reset]
[-tn|--tag-name <tag-name>] [-tid|--tag-identifier <tag-identifier>]
[-o|--output <output>]
[-t|--timeout]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>]
[-dco|--disable-console-output] [--nologo]
[-?|-h|--help]
Argumentumok
<session>
Annak a gyűjteménynek a munkamenet-azonosítója, amelyhez létre kell hozni egy lefedettségi fájlt.
Beállítások
-r|--reset <reset>
Törli a meglévő lefedettségi adatokat egy lefedettségi fájl létrehozása után.
-tn|--tag-name <tag-name>
Pillanatképcímke-nevet hoz létre a lefedettségi fájlban az aktuális lefedettségi adatokkal. A címkenév és a címkeazonosító kölcsönösen befogadóak.
-tid|--tag-identifier <tag-identifier>
Pillanatképcímke-azonosítót hoz létre a lefedettségi fájlban az aktuális lefedettségi adatokkal. A címkenév és a címkeazonosító kölcsönösen befogadóak.
-o|--output <output>
Beállítja a kódlefedettségi jelentés kimeneti fájlját. Ha nincs megadva, a rendszer automatikusan létrehoz egy időbélyeget.
-t|--timeout
Időtúllépés (ezredmásodpercben) az ügyfél és a kiszolgáló közötti folyamatközi kommunikációhoz.
-l|--log-file <log-file>
Beállítja a naplófájl elérési útját. Ha megad egy könyvtárat (a végén egy elérésiút-elválasztóval), a rendszer új naplófájlt hoz létre az elemzés alatt álló minden folyamathoz.
-ll|--log-level <log-level>
Beállítja a naplószintet. Támogatott értékek:
Error
,Info
ésVerbose
.-dco|--disable-console-output
Letiltja a konzol kimenetét.
--nologo
Ne jelenjen meg a Kódlefedettség szalagcím.
dotnet-lefedettség leállítása
Bezárja a meglévő kódlefedettségi gyűjteményt.
Szinopszis
dotnet-coverage shutdown
<session>
[-t|--timeout]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>]
[-dco|--disable-console-output] [--nologo]
[-?|-h|--help]
Argumentumok
<session>
A bezárandó gyűjtemény munkamenet-azonosítója.
Beállítások
-t|--timeout
Időtúllépés (ezredmásodpercben) a kiszolgálóval folytatott folyamatközi kommunikációhoz.
-l|--log-file <log-file>
Beállítja a naplófájl elérési útját. Ha megad egy könyvtárat (a végén egy elérésiút-elválasztóval), a rendszer új naplófájlt hoz létre az elemzés alatt álló minden folyamathoz.
-ll|--log-level <log-level>
Beállítja a naplószintet. Támogatott értékek:
Error
,Info
ésVerbose
.-dco|--disable-console-output
Letiltja a konzol kimenetét.
--nologo
Ne jelenjen meg a Kódlefedettség szalagcím.
dotnet-lefedettségi eszköz
A rendszerállapot-parancs a lemezen lévő bináris eszközökre szolgál.
Szinopszis
dotnet-coverage instrument
<input-file>
[-s|--settings <settings>] [-id|--session-id <session-id>]
[-o|--output <output>]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>]
[-dco|--disable-console-output] [--nologo]
[-?|-h|--help]
Argumentumok
<input-file>
A bemeneti bináris.
Beállítások
-s|--settings <settings>
Beállítja az XML-kódlefedettségi beállítások elérési útját.
-id|--session-id <session-id>
Megadja a kódlefedettségi munkamenet azonosítóját. Ha nincs megadva, az eszköz véletlenszerű GUID-t hoz létre.
-o|--output <output>
Beállítja a kimeneti fájl bináris elérési útját. Ha nincs megadva, a rendszerezés a helyszínen történik.
-l|--log-file <log-file>
Beállítja a naplófájl elérési útját. Ha megad egy könyvtárat (a végén egy elérésiút-elválasztóval), a rendszer új naplófájlt hoz létre az elemzés alatt álló minden folyamathoz.
-ll|--log-level <log-level>
Beállítja a naplószintet. Támogatott értékek:
Error
,Info
ésVerbose
.-dco|--disable-console-output
Letiltja a konzol kimenetét.
--nologo
Ne jelenjen meg a Kódlefedettség szalagcím.
dotnet-coverage uninstrument
A uninstrument paranccsal visszaállíthatja az eredeti binárist a rendszerállapotú binárisból.
Szinopszis
Microsoft.CodeCoverage.Console uninstrument
<input-file>
[-s|--settings <settings>]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>]
[-dco|--disable-console-output] [--nologo]
[-?|-h|--help]
Argumentumok
<input-file>
A bemeneti, rendszerezett bináris.
Beállítások
-s|--settings <settings>
Beállítja az XML-kódlefedettségi beállítások elérési útját.
-l|--log-file <log-file>
Beállítja a naplófájl elérési útját. Ha megad egy könyvtárat (a végén egy elérésiút-elválasztóval), a rendszer új naplófájlt hoz létre az elemzés alatt álló minden folyamathoz.
-ll|--log-level <log-level>
Beállítja a naplószintet. Támogatott értékek:
Error
,Info
ésVerbose
.-dco|--disable-console-output
Letiltja a konzol kimenetét.
--nologo
Ne jelenjen meg a Kódlefedettség szalagcím.
Használati példák
Kódlefedettség gyűjtése
Az alábbi paranccsal gyűjtse össze a kódlefedettségi adatokat bármely .NET-alkalmazáshoz (például konzolhoz vagy Blazorhoz):
dotnet-coverage collect dotnet run
Ha egy alkalmazásnak jelzésre van szüksége a leálláshoz, használhatja a Ctrl C billentyűkombinációt+, amely továbbra is lehetővé teszi a kódlefedettségi adatok gyűjtését. Az argumentumhoz megadhat minden olyan parancsot, amely végül elindít egy .NET-alkalmazást. Ez lehet például Egy PowerShell-szkript.
Előadások
Ha olyan .NET-kiszolgálón futtat kódlefedettségi elemzést, amely csak az üzenetekre vár, és válaszokat küld, le kell állítania a kiszolgálót a végleges kódlefedettségi eredmények lekéréséhez. A Ctrl+ helyileg is használható, az Azure Pipelinesban azonban nem. Ezekben a forgatókönyvekben munkameneteket használhat. A gyűjtemény indításakor megadhatja a munkamenet-azonosítót, majd a parancs használatával leállítja a shutdown
gyűjteményt és a kiszolgálót.
Tegyük fel például, hogy van egy kiszolgáló a D:\serverexample\kiszolgáló könyvtárban, és egy tesztprojekt a D:\serverexample\tests könyvtárban. A tesztek a hálózaton keresztül kommunikálnak a kiszolgálóval. A kiszolgáló kódlefedettségi gyűjteményét az alábbiak szerint indíthatja el:
D:\serverexample\server> dotnet-coverage collect --session-id serverdemo "dotnet run"
A munkamenet-azonosító a serverdemo
következőképpen lett megadva: . Ezután a következő módon futtathat teszteket:
D:\serverexample\tests> dotnet test
A munkamenet serverdemo
kódlefedettségi fájlja az alábbi módon hozható létre az aktuális lefedettséggel:
dotnet-coverage snapshot --output after_first_test.coverage serverdemo
Emellett egy pillanatképcímke is hozzáadható a lefedettségi fájlhoz a következő címkebeállítások használatával:
dotnet-coverage snapshot --tag-name after_first_test --tag-identifier after_first_test serverdemo
Végül a munkamenet serverdemo
és a kiszolgáló az alábbiak szerint zárható be:
dotnet-coverage shutdown serverdemo
Az alábbiakban egy példa látható a kiszolgálóoldal teljes kimenetére:
D:\serverexample\server> dotnet-coverage collect --session-id serverdemo "dotnet run"
SessionId: serverdemo
Waiting for a connection... Connected!
Received: Hello!
Sent: HELLO!
Waiting for a connection... Code coverage results: output.coverage.
D:\serverexample\server>
Kiszolgáló- és ügyfélmód
A kódlefedettségi gyűjtemény kiszolgáló-ügyfél módban is elvégezhető. Ebben a forgatókönyvben elindul egy kódlefedettségi gyűjteménykiszolgáló, és több ügyfél is csatlakozhat a kiszolgálóhoz. A kódlefedettség összegyűjtése az összes ügyfél esetében együttesen történik.
Indítsa el a kódlefedettségi kiszolgálót a következő paranccsal:
dotnet-coverage collect --session-id serverdemo --server-mode
Ebben a példában a munkamenet-azonosítót a kiszolgálóhoz hasonlóan serverdemo
adták meg. Az ügyfél az alábbi paranccsal csatlakozhat a kiszolgálóhoz ezzel a munkamenet-azonosítóval:
dotnet-coverage connect serverdemo dotnet run
Végül az alábbi paranccsal bezárhatja a munkamenetet serverdemo
és a kiszolgálót:
dotnet-coverage shutdown serverdemo
A kiszolgálói folyamat létrehoz egy kollektív kódlefedettségi jelentést az összes ügyfélhez és kilépéshez.
Az alábbiakban egy példa látható a kiszolgálóoldal teljes kimenetére:
D:\serverexample\server> dotnet-coverage collect --session-id serverdemo --server-mode
SessionId: serverdemo
// Server will be in idle state and wait for connect and shutdown commands
Code coverage results: output.coverage.
D:\serverexample\server>
Az alábbi példa az ügyféloldal teljes kimenetét szemlélteti:
D:\serverexample\server> dotnet-coverage connect serverdemo ConsoleApplication.exe World
Hello World!!
D:\serverexample\server> dotnet-coverage connect serverdemo WpfApplication.exe
D:\serverexample\server> dotnet-coverage shutdown serverdemo
D:\serverexample\server>
A kiszolgálót és az ügyfelet háttér módban is elindíthatja. Egy másik folyamat indul el a háttérben, és visszaadja a vezérlést a felhasználónak.
Az alábbiakban egy példa látható a háttérkiszolgáló ügyfél módban történő teljes kimenetre:
D:\serverexample\server> dotnet-coverage collect --session-id serverdemo --server-mode --background
D:\serverexample\server> dotnet-coverage connect --background serverdemo ConsoleApplication.exe World
D:\serverexample\server> dotnet-coverage connect --background serverdemo WpfApplication.exe
D:\serverexample\server> dotnet-coverage shutdown serverdemo
D:\serverexample\server>
Statikus kódlefedettség felügyelt szerelvényekhez
A dotnet-lefedettségi eszköz használatával kódlefedettség gyűjthető a felügyelt szerelvényekhez statikus rendszerállapot használatával. Három különböző módszer érhető el, amelyeket használhat. A szemléltetés érdekében tegyük fel, hogy van egy egyszerű C#-konzolalkalmazásunk:
D:\examples\ConsoleApp> dotnet run
Hello, World!
A Collect parancs használata fájlok belefoglalásával vagy konfigurálással
Ha nem szeretné használni a instrument
parancsot, akkor a rendszerezendő fájlok az alábbi beállítással --include-files
adhatók meg:
D:\examples\ConsoleApp> dotnet-coverage collect --include-files .\bin\Debug\net7.0\*.dll dotnet run
Microsoft (R) Code Coverage Command Line Tool (x64)
Copyright (c) Microsoft Corporation. All rights reserved.
SessionId: 57862ec0-e512-49a5-8b66-2804174680fc
Hello, World!
Code coverage results: output.coverage.
A konfigurációval eszközzé tenni kívánt fájlokat az alábbiak szerint adhatja meg:
<ModulePaths>
<IncludeDirectories>
<Directory>D:\examples\ConsoleApp\bin\Debug\net7.0</Directory>
</IncludeDirectories>
</ModulePaths>
Eszköz használata és parancsok gyűjtése
Ebben az esetben az első binárist az alábbiak szerint kell rendszerezni:
D:\examples\ConsoleApp> dotnet-coverage instrument .\bin\Debug\net7.0\ConsoleApp.dll
Microsoft (R) Code Coverage Command Line Tool (x64)
Copyright (c) Microsoft Corporation. All rights reserved.
Input file successfully instrumented.
Ezután az alábbiak szerint gyűjtheti a kódlefedettségeket:
D:\examples\ConsoleApp> dotnet-coverage collect .\bin\Debug\net7.0\ConsoleApp.exe
Microsoft (R) Code Coverage Command Line Tool (x64)
Copyright (c) Microsoft Corporation. All rights reserved.
SessionId: a09e6bef-ff64-4b5f-8bb8-fc495ebb50ba
Hello, World!
Code coverage results: output.coverage.
Az eszköz használata és a parancsok összegyűjtése kiszolgáló módban
Ebben az esetben teljesen elkülönítheti a lefedettségi gyűjteményt az alkalmazás futtatásától. Először a következőképpen alakítsa ki a binárist:
D:\examples\ConsoleApp> dotnet-coverage instrument --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 .\bin\Debug\net7.0\ConsoleApp.dll
Microsoft (R) Code Coverage Command Line Tool (x64)
Copyright (c) Microsoft Corporation. All rights reserved.
Input file successfully instrumented.
Feljegyzés
Ebben a forgatókönyvben munkamenet-azonosítót kell használni annak biztosításához, hogy az alkalmazás kapcsolódni tud, és adatokat biztosítson a külső gyűjtőnek.
A második lépésben a lefedettséggyűjtőt az alábbiak szerint kell elindítania:
D:\examples\ConsoleApp> dotnet-coverage collect --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 --server-mode
Microsoft (R) Code Coverage Command Line Tool (x64)
Copyright (c) Microsoft Corporation. All rights reserved.
SessionId: 73c34ce5-501c-4369-a4cb-04d31427d1a4
Ezután az alkalmazás a következőképpen indítható el:
D:\examples\ConsoleApp> .\bin\Debug\net7.0\ConsoleApp.exe
Hello, World!
Végül a gyűjtő a következőképpen zárható be:
D:\examples\ConsoleApp> dotnet-coverage shutdown 73c34ce5-501c-4369-a4cb-04d31427d1a4
Microsoft (R) Code Coverage Command Line Tool (x64)
Copyright (c) Microsoft Corporation. All rights reserved.
Beállítások
A parancs használatakor collect
megadhat egy beállításokat tartalmazó fájlt. A beállításfájl használatával kizárhat néhány modult vagy metódust a kódlefedettség-elemzésből. A formátum megegyezik a runsettings-fájlban található adatgyűjtő konfigurációval . További információ: Kódlefedettség-elemzés testreszabása. Példa:
<?xml version="1.0" encoding="utf-8"?>
<Configuration>
<CodeCoverage>
<!--
Additional paths to search for .pdb (symbol) files. Symbols must be found for modules to be instrumented.
If .pdb files are in the same folder as the .dll or .exe files, they are automatically found. Otherwise, specify them here.
Note that searching for symbols increases code coverage run time. So keep this small and local.
-->
<SymbolSearchPaths>
<Path>C:\Users\User\Documents\Visual Studio 2012\Projects\ProjectX\bin\Debug</Path>
<Path>\\mybuildshare\builds\ProjectX</Path>
</SymbolSearchPaths>
<!--
About include/exclude lists:
Empty "Include" clauses imply all; empty "Exclude" clauses imply none.
Each element in the list is a regular expression (ECMAScript syntax). See /visualstudio/ide/using-regular-expressions-in-visual-studio.
An item must first match at least one entry in the include list to be included.
Included items must then not match any entries in the exclude list to remain included.
-->
<!-- Match assembly file paths: -->
<ModulePaths>
<Include>
<ModulePath>.*\.dll$</ModulePath>
<ModulePath>.*\.exe$</ModulePath>
</Include>
<Exclude>
<ModulePath>.*CPPUnitTestFramework.*</ModulePath>
</Exclude>
<!-- Additional directories from .NET assemblies should be statically instrumented: -->
<IncludeDirectories>
<Directory Recursive="true">C:\temp</Directory>
</IncludeDirectories>
</ModulePaths>
<!-- Match fully qualified names of functions: -->
<!-- (Use "\." to delimit namespaces in C# or Visual Basic, "::" in C++.) -->
<Functions>
<Exclude>
<Function>^Fabrikam\.UnitTest\..*</Function>
<Function>^std::.*</Function>
<Function>^ATL::.*</Function>
<Function>.*::__GetTestMethodInfo.*</Function>
<Function>^Microsoft::VisualStudio::CppCodeCoverageFramework::.*</Function>
<Function>^Microsoft::VisualStudio::CppUnitTestFramework::.*</Function>
</Exclude>
</Functions>
<!-- Match attributes on any code element: -->
<Attributes>
<Exclude>
<!-- Don't forget "Attribute" at the end of the name -->
<Attribute>^System\.Diagnostics\.DebuggerHiddenAttribute$</Attribute>
<Attribute>^System\.Diagnostics\.DebuggerNonUserCodeAttribute$</Attribute>
<Attribute>^System\.CodeDom\.Compiler\.GeneratedCodeAttribute$</Attribute>
<Attribute>^System\.Diagnostics\.CodeAnalysis\.ExcludeFromCodeCoverageAttribute$</Attribute>
</Exclude>
</Attributes>
<!-- Match the path of the source files in which each method is defined: -->
<Sources>
<Exclude>
<Source>.*\\atlmfc\\.*</Source>
<Source>.*\\vctools\\.*</Source>
<Source>.*\\public\\sdk\\.*</Source>
<Source>.*\\microsoft sdks\\.*</Source>
<Source>.*\\vc\\include\\.*</Source>
</Exclude>
</Sources>
<!-- Match the company name property in the assembly: -->
<CompanyNames>
<Exclude>
<CompanyName>.*microsoft.*</CompanyName>
</Exclude>
</CompanyNames>
<!-- Match the public key token of a signed assembly: -->
<PublicKeyTokens>
<!-- Exclude Visual Studio extensions: -->
<Exclude>
<PublicKeyToken>^B77A5C561934E089$</PublicKeyToken>
<PublicKeyToken>^B03F5F7F11D50A3A$</PublicKeyToken>
<PublicKeyToken>^31BF3856AD364E35$</PublicKeyToken>
<PublicKeyToken>^89845DCD8080CC91$</PublicKeyToken>
<PublicKeyToken>^71E9BCE111E9429C$</PublicKeyToken>
<PublicKeyToken>^8F50407C4E9E73B6$</PublicKeyToken>
<PublicKeyToken>^E361AF139669C375$</PublicKeyToken>
</Exclude>
</PublicKeyTokens>
<EnableStaticManagedInstrumentation>True</EnableStaticManagedInstrumentation>
<EnableDynamicManagedInstrumentation>True</EnableDynamicManagedInstrumentation>
</CodeCoverage>
</Configuration>
Kódlefedettségi jelentések egyesítése
Az adatokat az alábbiak szerint a.coverage
egyesítheti b.coverage
és merged.coverage
tárolhatja:
dotnet-coverage merge -o merged.coverage a.coverage b.coverage
Ha például egy hasonló dotnet test --collect "Code Coverage"
parancsot futtat, a lefedettségi jelentést egy véletlenszerű GUID nevű mappába tárolja a rendszer. Az ilyen mappákat nehéz megtalálni és egyesíteni. Ezzel az eszközzel az összes projekt összes kódlefedettségi jelentését összevonhatja az alábbi rövidítési minták használatával:
dotnet-coverage merge -o merged.cobertura.xml -f cobertura **\*.coverage
Az előző parancs egyesíti az összes lefedettségi jelentést az aktuális könyvtárból és az összes alkönyvtárból, és az eredményt egy cobertura-fájlban tárolja. Az Azure Pipelinesban a Kódlefedettségi eredmények közzététele feladat használatával közzétehet egy egyesített cobertura-jelentést.
A parancs használatával merge
egy kódlefedettségi jelentést más formátumba alakíthat át. Az alábbi parancs például XML-formátumba konvertál egy bináris kódlefedettségi jelentést.
dotnet-coverage merge -o output.xml -f xml input.coverage