hulpprogramma voor dekking van dotnet-dekkingscode
Dit artikel is van toepassing op: ✔️ .NET Core 3.1 SDK en latere versies
Samenvatting
dotnet-coverage [-h, --help] [--version] <command>
Beschrijving
Het dotnet-coverage
hulpprogramma:
- Hiermee kunt u de platformoverschrijdende verzameling codedekkingsgegevens van een actief proces inschakelen.
- Biedt platformoverschrijdende samenvoeging van codedekkingsrapporten.
Opties
-h|--help
Toont opdrachtregelhulp.
--version
Geeft de versie van het hulpprogramma dotnet-dekking weer.
Installeren
Als u de nieuwste versie van het NuGet-pakket wilt installeren, gebruikt u de installatieopdracht van het dotnet-coverage
dotnet-hulpprogramma:
dotnet tool install --global dotnet-coverage
Opdracht
Opdracht |
---|
samenvoegen van dotnet-dekking |
dotnet-coverage collect |
dotnet-coverage connect |
momentopname van dotnet-dekking |
dotnet-dekking afsluiten |
dotnet-dekkingsinstrument |
samenvoegen van dotnet-dekking
De merge
opdracht wordt gebruikt om verschillende codedekkingsrapporten samen te voegen in één rapport. Deze opdracht is beschikbaar op alle platforms. Deze opdracht ondersteunt de volgende indelingen voor codedekkingsrapport:
coverage
cobertura
xml
Samenvatting
dotnet-coverage merge
[--remove-input-files]
[-o|--output <output>] [-f|--output-format <output-format>]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>] [-?|-h|--help]
<files>
Argumenten
<files>
De dekkingsrapporten voor invoercode.
Opties
--remove-input-files
Hiermee verwijdert u alle invoerdekkingsrapporten die zijn samengevoegd.
-r, --recursive
.NET 7 SDK en eerdere versies zoeken alleen naar dekkingsrapporten in submappen.
-o|--output <output>
Hiermee stelt u het uitvoerbestand voor het codedekkingsrapport in.
-f|--output-format <output-format>
De indeling van het uitvoerbestand. Ondersteunde waarden:
coverage
,xml
encobertura
. Standaard iscoverage
(binaire indeling die kan worden geopend in Visual Studio).-l|--log-file <log-file>
Hiermee stelt u het pad naar het logboekbestand in. Wanneer u een map opgeeft (met een padscheidingsteken aan het einde), wordt er een nieuw logboekbestand gegenereerd voor elk proces dat wordt geanalyseerd.
-ll|--log-level <log-level>
Hiermee stelt u het logboekniveau in. Ondersteunde waarden:
Error
,Info
enVerbose
.
dotnet-coverage collect
De collect
opdracht wordt gebruikt om codedekkingsgegevens te verzamelen voor elk .NET-proces en de bijbehorende subprocessen. U kunt bijvoorbeeld codedekkingsgegevens verzamelen voor een consoletoepassing of een Blazor-toepassing. Deze opdracht ondersteunt dynamische en statische instrumentatie. Statische instrumentatie is beschikbaar op alle platforms. U kunt bestanden opgeven die statisch moeten worden geïnstrueerd met behulp van include-files
de optie. Dynamische instrumentatie is beschikbaar in Windows (x86, x64 en Arm64), Linux (x64) en macOS (x64). De opdracht ondersteunt alleen .NET-modules. Systeemeigen modules worden niet ondersteund.
Samenvatting
De collect
opdracht kan in twee modi worden uitgevoerd.
Opdrachtmodus
Met collect
de opdracht wordt de codedekking verzameld voor het opgegeven proces dat door het command
argument wordt uitgevoerd.
dotnet-coverage collect
[-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>] [-?|-h|--help]
<command> <args>
Servermodus
De collect
opdracht fungeert als host voor een server voor het verzamelen van codedekking. Clients kunnen via de opdracht verbinding maken met de server connect
.
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>] [-?|-h|--help]
Argumenten
<command>
De opdracht waarvoor codedekkingsgegevens moeten worden verzameld.
<args>
De opdrachtregelargumenten voor de opdracht.
Opties
-s|--settings <settings>
Hiermee stelt u het pad in op de instellingen voor de xml-codedekking.
-id|--session-id <session-id>
Hiermee geeft u de sessie-id van de codedekking op. Als dit niet is opgegeven, genereert het hulpprogramma een willekeurige GUID.
-sv|--server-mode
Start de collector in de servermodus. Clients kunnen verbinding maken met de server met de
connect
opdracht.-b|--background
Start de verzamelingsserver voor codedekking in een nieuw achtergrondproces. Clients kunnen verbinding maken met de server met de
connect
opdracht.-t|--timeout
Time-out (in milliseconden) voor communicatie tussen processen tussen clients en de server.
-if|--include-files <include-files>
Hiermee geeft u een lijst met bestanden die statisch moeten worden geïnstrueerd.
-o|--output <output>
Hiermee stelt u het uitvoerbestand voor het codedekkingsrapport in.
-f|--output-format <output-format>
De indeling van het uitvoerbestand. Ondersteunde waarden:
coverage
,xml
encobertura
. Standaard iscoverage
(binaire indeling die kan worden geopend in Visual Studio).-l|--log-file <log-file>
Hiermee stelt u het pad naar het logboekbestand in. Wanneer u een map opgeeft (met een padscheidingsteken aan het einde), wordt er een nieuw logboekbestand gegenereerd voor elk proces dat wordt geanalyseerd.
-ll|--log-level <log-level>
Hiermee stelt u het logboekniveau in. Ondersteunde waarden:
Error
,Info
enVerbose
.
dotnet-coverage connect
De connect
opdracht wordt gebruikt om verbinding te maken met de bestaande server en verzamelt codedekkingsgegevens voor elk .NET-proces en de bijbehorende subprocessen. U kunt bijvoorbeeld codedekkingsgegevens verzamelen voor een consoletoepassing of een Blazor-toepassing. De opdracht ondersteunt alleen .NET-modules. Systeemeigen modules worden niet ondersteund.
Notitie
De opdracht maakt gebruik van dynamische instrumentatie voor alle subprocessen die beschikbaar zijn in Windows (x86, x64 en Arm64), Linux (x64) en macOS (x64). Als u een .NET-module statisch moet instrumenteren, gebruikt instrument
u de opdracht (met de bijbehorende sessie-id-optie) voordat u connect
de opdracht uitvoert.
Samenvatting
dotnet-coverage connect
[-b|--background] [-t|--timeout]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>] [-?|-h|--help]
<session>
<command> <args>
Argumenten
<session>
De sessie-id van de server die wordt gehost door de
collect
opdracht.<command>
De opdracht waarvoor codedekkingsgegevens moeten worden verzameld.
<args>
De opdrachtregelargumenten voor de opdracht.
Opties
-b|--background
Start de client in een nieuw achtergrondproces.
-t|--timeout
Time-out (in milliseconden) voor communicatie tussen processen tussen de client en de server.*
-l|--log-file <log-file>
-l|--log-file <log-file>
Hiermee stelt u het pad naar het logboekbestand in. Wanneer u een map opgeeft (met een padscheidingsteken aan het einde), wordt er een nieuw logboekbestand gegenereerd voor elk proces dat wordt geanalyseerd.
-ll|--log-level <log-level>
Hiermee stelt u het logboekniveau in. Ondersteunde waarden:
Error
,Info
enVerbose
.
momentopname van dotnet-dekking
Hiermee maakt u een dekkingsbestand voor bestaande codedekkingsverzameling.
Samenvatting
dotnet-coverage snapshot
[-r|--reset]
[-o|--output <output>]
[-tn|--tag-name <tag-name>] [-tid|--tag-identifier <tag-identifier>]
[-t|--timeout]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>] [-?|-h|--help]
<session>
Argumenten
<session>
De sessie-id van de verzameling waarvoor een dekkingsbestand moet worden gegenereerd.
Opties
-r|--reset <reset>
Wist bestaande dekkingsgegevens nadat een dekkingsbestand is gemaakt.
-o|--output <output>
Hiermee stelt u het uitvoerbestand voor het codedekkingsrapport in. Als deze niet is opgegeven, wordt deze automatisch gegenereerd met een tijdstempel.
-tn|--tag-name <tag-name>
Hiermee maakt u een naam voor de momentopnametag in het dekkingsbestand met de huidige dekkingsgegevens. Tagnaam en tag-id zijn wederzijds inclusief.
-tid|--tag-identifier <tag-identifier>
Hiermee maakt u een tag-id voor momentopnamen in het dekkingsbestand met actuele dekkingsgegevens. Tagnaam en tag-id zijn wederzijds inclusief.
-t|--timeout
Time-out (in milliseconden) voor communicatie tussen processen tussen de client en de server.
-l|--log-file <log-file>
Hiermee stelt u het pad naar het logboekbestand in. Wanneer u een map opgeeft (met een padscheidingsteken aan het einde), wordt er een nieuw logboekbestand gegenereerd voor elk proces dat wordt geanalyseerd.
-ll|--log-level <log-level>
Hiermee stelt u het logboekniveau in. Ondersteunde waarden:
Error
,Info
enVerbose
.
dotnet-dekking afsluiten
Hiermee sluit u de bestaande verzameling codedekking.
Samenvatting
dotnet-coverage shutdown
[-t|--timeout]
[-l|--log-file <log-file>] [-ll|--log-level <log-level>] [-?|-h|--help]
<session>
Argumenten
<session>
De sessie-id van de verzameling die moet worden gesloten.
Opties
-t|--timeout
Time-out (in milliseconden) voor communicatie tussen processen met de server.
-l|--log-file <log-file>
Hiermee stelt u het pad naar het logboekbestand in. Wanneer u een map opgeeft (met een padscheidingsteken aan het einde), wordt er een nieuw logboekbestand gegenereerd voor elk proces dat wordt geanalyseerd.
-ll|--log-level <log-level>
Hiermee stelt u het logboekniveau in. Ondersteunde waarden:
Error
,Info
enVerbose
.
dotnet-dekkingsinstrument
De instrumentopdracht wordt gebruikt om binair op schijf te instrumenteren.
Samenvatting
dotnet-coverage instrument
[-s|--settings <settings>] [-id|--session-id <session-id>]
[-o|--output <output>] [-l|--log-file <log-file>]
[-ll|--log-level <log-level>] [-?|-h|--help]
<input-file>
Argumenten
<input-file>
Het binaire invoerbestand.
Opties
-s|--settings <settings>
Hiermee stelt u het pad in op de instellingen voor de xml-codedekking.
-id|--session-id <session-id>
Hiermee geeft u de sessie-id van de codedekking op. Als dit niet is opgegeven, genereert het hulpprogramma een willekeurige GUID.
-o|--output <output>
Hiermee stelt u het pad in naar het binaire uitvoerbestand. Indien niet verstrekt, wordt instrumentatie ter plaatse uitgevoerd.
-l|--log-file <log-file>
Hiermee stelt u het pad naar het logboekbestand in. Wanneer u een map opgeeft (met een padscheidingsteken aan het einde), wordt er een nieuw logboekbestand gegenereerd voor elk proces dat wordt geanalyseerd.
-ll|--log-level <log-level>
Hiermee stelt u het logboekniveau in. Ondersteunde waarden:
Error
,Info
enVerbose
.
Voorbeeldscenario's
Codedekking verzamelen
Verzamel codedekkingsgegevens voor een .NET-toepassing (zoals console of Blazor) met behulp van de volgende opdracht:
dotnet-coverage collect dotnet run
In het geval van een toepassing waarvoor een signaal moet worden beëindigd, kunt u Ctrl+C gebruiken, waarmee u nog steeds codedekkingsgegevens kunt verzamelen. Voor het argument kunt u elke opdracht opgeven waarmee uiteindelijk een .NET-app wordt gestart. Het kan bijvoorbeeld een PowerShell-script zijn.
Sessies
Wanneer u codedekkingsanalyse uitvoert op een .NET-server die alleen wacht op berichten en antwoorden verzendt, hebt u een manier nodig om de server te stoppen om de uiteindelijke resultaten van de codedekking te verkrijgen. U kunt Ctrl+C lokaal gebruiken, maar niet in Azure Pipelines. Voor deze scenario's kunt u sessies gebruiken. U kunt een sessie-id opgeven bij het starten van de verzameling en vervolgens de opdracht gebruiken om de shutdown
verzameling en de server te stoppen.
Stel dat u een server hebt in de map D:\serverexample\server en een testproject in de map D:\serverexample\tests . Tests communiceren met de server via het netwerk. U kunt de verzameling codedekking voor de server als volgt starten:
D:\serverexample\server> dotnet-coverage collect --session-id serverdemo "dotnet run"
Sessie-id is opgegeven als serverdemo
. Vervolgens kunt u tests als volgt uitvoeren:
D:\serverexample\tests> dotnet test
Er kan als volgt een codedekkingsbestand voor de sessie serverdemo
worden gegenereerd met de huidige dekking:
dotnet-coverage snapshot --output after_first_test.coverage serverdemo
Een momentopnametag kan ook als volgt worden toegevoegd aan het dekkingsbestand met behulp van tagopties:
dotnet-coverage snapshot --tag-name after_first_test --tag-identifier after_first_test serverdemo
Ten slotte kunnen sessie serverdemo
en de server als volgt worden gesloten:
dotnet-coverage shutdown serverdemo
Hieronder volgt een voorbeeld van volledige uitvoer aan de serverzijde:
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>
Server- en clientmodus
Codedekkingsverzameling kan ook worden uitgevoerd in de serverclientmodus. In dit scenario wordt een codedekkingsverzamelingsserver gestart en kunnen meerdere clients verbinding maken met de server. Codedekking wordt gezamenlijk verzameld voor alle clients.
Start de codedekkingsserver met behulp van de volgende opdracht:
dotnet-coverage collect --session-id serverdemo --server-mode
In dit voorbeeld is de sessie-id opgegeven als serverdemo
voor de server. Een client kan verbinding maken met de server met behulp van deze sessie-id met behulp van de volgende opdracht:
dotnet-coverage connect serverdemo dotnet run
Ten slotte kunt u de sessie serverdemo
en de server sluiten met behulp van de volgende opdracht:
dotnet-coverage shutdown serverdemo
Het serverproces maakt een rapport voor collectieve codedekking voor alle clients en wordt afgesloten.
Hieronder volgt een voorbeeld van volledige uitvoer aan de serverzijde:
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>
Hieronder volgt een voorbeeld van volledige uitvoer aan de clientzijde:
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>
U kunt zowel de server als de client ook starten in de achtergrondmodus. Een ander proces begint op de achtergrond en retourneert het besturingselement terug naar de gebruiker.
Hieronder volgt een voorbeeld van volledige uitvoer in de clientmodus van de achtergrondserver:
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>
Statische codedekking voor beheerde assembly's
Het dotnet-dekkingsprogramma kan worden gebruikt voor het verzamelen van codedekking voor beheerde assembly's met behulp van statische instrumentatie. Er zijn drie verschillende methoden beschikbaar die u kunt gebruiken. We gaan ervan uit dat we een eenvoudige C#-consoletoepassing hebben:
D:\examples\ConsoleApp> dotnet run
Hello, World!
De opdracht Collect gebruiken met de optie Bestanden opnemen of configureren
Als u de instrument
opdracht niet wilt gebruiken, kunnen de te instrumenteren bestanden als volgt worden opgegeven met behulp van --include-files
de optie:
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.
U kunt ook als volgt bestanden opgeven die moeten worden geïnstrueerd met behulp van de configuratie:
<ModulePaths>
<IncludeDirectories>
<Directory>D:\examples\ConsoleApp\bin\Debug\net7.0</Directory>
</IncludeDirectories>
</ModulePaths>
Instrument gebruiken en opdrachten verzamelen
In dit geval moet het eerste binaire bestand als volgt worden geïnstrueerd:
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.
Vervolgens kunt u de codedekking als volgt verzamelen:
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.
Het instrument gebruiken en opdrachten verzamelen in de servermodus
In dit geval kunt u de dekkingsverzameling volledig scheiden van het uitvoeren van uw toepassing. Instrumenteer eerst uw binaire bestand als volgt:
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.
Notitie
Sessie-id moet in dit scenario worden gebruikt om ervoor te zorgen dat de toepassing verbinding kan maken en gegevens kan leveren aan externe collector.
In de tweede stap moet u de dekkingsverzamelaar als volgt starten:
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
Vervolgens kan de toepassing als volgt worden gestart:
D:\examples\ConsoleApp> .\bin\Debug\net7.0\ConsoleApp.exe
Hello, World!
Ten slotte kan de collector als volgt worden gesloten:
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.
Instellingen
U kunt een bestand met instellingen opgeven wanneer u de collect
opdracht gebruikt. Het instellingenbestand kan worden gebruikt om bepaalde modules of methoden uit te sluiten van codedekkingsanalyse. De indeling is hetzelfde als de configuratie van de gegevensverzamelaar in een runettings-bestand . Zie Analyse van codedekking aanpassen voor meer informatie. Hier volgt een voorbeeld:
<?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>
Codedekkingsrapporten samenvoegen
U kunt de gegevens merged.coverage
als volgt samenvoegen a.coverage
en b.coverage
opslaan:
dotnet-coverage merge -o merged.coverage a.coverage b.coverage
Als u bijvoorbeeld een opdracht als volgt dotnet test --collect "Code Coverage"
uitvoert, wordt het dekkingsrapport opgeslagen in een map met de naam een willekeurige GUID. Dergelijke mappen zijn moeilijk te vinden en samen te voegen. Met dit hulpprogramma kunt u als volgt alle codedekkingsrapporten voor al uw projecten samenvoegen met behulp van globbing-patronen:
dotnet-coverage merge -o merged.cobertura.xml -f cobertura **\*.coverage
Met de voorgaande opdracht worden alle dekkingsrapporten uit de huidige map en alle submappen samengevoegd en wordt het resultaat opgeslagen in een cobertura-bestand. In Azure Pipelines kunt u de taak Codedekkingsresultaten publiceren gebruiken om een samengevoegd cobertura-rapport te publiceren.
U kunt de merge
opdracht gebruiken om een codedekkingsrapport te converteren naar een andere indeling. Met de volgende opdracht wordt bijvoorbeeld een rapport voor binaire codedekking geconverteerd naar xml-indeling.
dotnet-coverage merge -o output.xml -f xml input.coverage