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


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-coveragetelepí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és cobertura. Az alapértelmezett érték coverage (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és Verbose.

  • -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és cobertura. Az alapértelmezett érték coverage (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és Verbose.

  • -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és Verbose.

  • -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és Verbose.

  • -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és Verbose.

  • -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és Verbose.

  • -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és Verbose.

  • -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 serverdemokö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

Lásd még