Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Microsoft.CodeCoverage.Console is een opdrachtregelprogramma dat u kunt gebruiken om codedekking voor C++ en C#-code te verzamelen. Het biedt ook ondersteuning voor het samenvoegen en converteren van codedekkingsrapporten. Dit hulpprogramma kan worden gebruikt voor het verzamelen van codedekking in niet-testscenario's (bijvoorbeeld voor een eenvoudige consoletoepassing).
Dit hulpprogramma is een uitbreiding van het dotnet-coverage dotnet-hulpprogramma die ondersteuning biedt voor de volgende scenario's:
- Voegt beveiligingsfuncties toe om het verzamelen van ASP.NET codedekkingsgegevens van IIS mogelijk te maken.
- Codedekking verzamelen voor C++-code.
Notitie
Codedekking is beschikbaar in de edities Visual Studio Enterprise, Community en Professional. In Visual Studio 2022 en vorige versies was de codedekkingsfunctie beperkt tot Visual Studio Enterprise Edition.
Notitie
Codedekking is alleen beschikbaar voor Visual Studio Enterprise. Voor .NET-codedekking kunt u ook het opdrachtregelprogramma dotnet-coveragegebruiken.
Microsoft.CodeCoverage.Console is beschikbaar in Visual Studio 2022 17.3 onder de map Common7\IDE\Extensions\Microsoft\CodeCoverage.Console. U kunt deze gebruiken in een opdrachtprompt voor ontwikkelaars en een Developer PowerShell:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console --help
Description:
Code coverage tools.
Usage:
Microsoft.CodeCoverage.Console [command] [options]
Options:
--version Show version information
-?, -h, --help Show help and usage information
Commands:
collect <command> <args> Collect code coverage from inner process and subprocesses.
connect <session> <command> <args> Connects to an existing code coverage session and collects code coverage from
inner process and subprocesses.
merge <files> Merge coverage reports
shutdown <session> Close existing code coverage collection.
snapshot <session> Creates coverage file for existing code coverage collection.
instrument <input-file> Instruments native and managed binary.
uninstrument <input-file> Restore original binary.
Opdrachten verzamelen, verbinden, afsluiten, samenvoegen, momentopnamen en instrumenteren
Het hulpprogramma Microsoft.CodeCoverage.Console is een uitbreiding op het dotnet-coverage dotnet-hulpprogramma. De documentatie voor de opdrachten verzamelen, verbinden, afsluiten, samenvoegen, momentopnamen en un-instrumenteren vindt u hier .
Microsoft.CodeCoverage.Console ondersteunt aanvullende beveiligingsfuncties om het verzamelen van ASP.NET codedekkingsgegevens van IIS mogelijk te maken. Daarnaast biedt het hulpprogramma Microsoft.CodeCoverage.Console ondersteuning voor het verzamelen van codedekking voor C++-code. De opdracht instrument is specifiek voor deze scenario's.
Instrumentopdracht
De instrumentopdracht wordt gebruikt om systeemeigen of beheerde binaire bestanden op schijf te instrumenteren.
Samenvatting
Microsoft.CodeCoverage.Console 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]
Argumenten
<input-file>Het binaire invoerbestand.
Opties
-s|--settings <settings>Hiermee stelt u het pad in naar de instellingen voor de XML-codedekking. 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 .runsettings--bestand. Zie Analyse van codedekking aanpassenvoor meer informatie.
-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 voor het uitvoerbestand in binaire vorm. 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,InfoenVerbose.-dco|--disable-console-outputHiermee schakelt u console-uitvoer uit.
--nologoToon geen banner voor code coverage.
Statische codedekking voor C++-code
Het hulpprogramma Microsoft.CodeCoverage.Console kan worden gebruikt om codedekking voor C++ te verzamelen 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 (gekoppeld aan de optie /PROFILE):
D:\ConsoleApplication\x64\Debug> .\ConsoleApplication.exe
Hello World!
Codedekking met behulp van opdracht verzamelen met configuratiebestand (C++)
Als u de opdracht instrument niet wilt gebruiken, kunt u in plaats daarvan een configuratiebestand gebruiken om de te instrumenteren bestanden op te geven, als volgt:
<ModulePaths>
<IncludeDirectories>
<Directory>D:\ConsoleApplication\x64\Debug</Directory>
</IncludeDirectories>
</ModulePaths>
Verzamel vervolgens de codedekking als volgt:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect --settings coverage.config .\ConsoleApplication.exe
SessionId: 85d9d49e-38a7-43a4-81ff-9e12f0e6b04b
Hello World!
Code coverage results: output.coverage.
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 .runsettings--bestand. Zie Analyse van codedekking aanpassenvoor meer informatie.
Codedekking met behulp van instrument en verzamel opdrachten (C++)
Voordat u codedekkingsgegevens verzamelt, moet u eerst het binaire bestand als volgt instrumenteren:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console instrument ConsoleApplication.exe
Input file successfully instrumented.
Verzamel vervolgens de codedekking als volgt:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect .\ConsoleApplication.exe
SessionId: e85e657f-9ff3-42a0-88d7-2349598a1ecd
Hello World!
Code coverage results: output.coverage.
Codedekking met behulp van instrumentopdracht en verzamel opdracht in servermodus (C++)
Met deze methode kunt u de verzameling codedekking scheiden van het uitvoeren van uw toepassing. Instrumenteer eerst het binaire bestand als volgt:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console instrument --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 ConsoleApplication.exe
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 collector voor codedekking als volgt starten:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 --server-mode
SessionId: 73c34ce5-501c-4369-a4cb-04d31427d1a4
Start vervolgens de toepassing als volgt:
D:\ConsoleApplication\x64\Debug>.\ConsoleApplication.exe
Hello World!
Notitie
Instrumented native binary bevat een verwijzing naar static_covrun64.dll. Zorg ervoor dat dit bestand zich naast het geïnstrueerde binaire bestand bevindt of dat de map waar static_covrun64.dll zich bevindt, wordt vermeld in de omgevingsvariabele Path. De opdrachten collect en connect voegen automatisch de juiste mappen toe aan Path.
Sluit ten slotte de collector als volgt:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console shutdown 73c34ce5-501c-4369-a4cb-04d31427d1a4