Microsoft.CodeCoverage.Console, narzędzie
Microsoft.CodeCoverage.Console to narzędzie wiersza polecenia. Można go użyć do zbierania pokrycia kodu dla kodu C++ i C#. Obsługuje również scalanie i konwertowanie raportów pokrycia kodu. To narzędzie może służyć do zbierania pokrycia kodu w scenariuszach nietestowych (na przykład w przypadku prostej aplikacji konsolowej).
Program Microsoft.CodeCoverage.Console jest dostępny w programie Visual Studio 2022 17.3 w folderze Common7\IDE\Extensions\Microsoft\CodeCoverage.Console
. Można go używać w wierszu polecenia dla deweloperów i w programie PowerShell dla deweloperów:
Uwaga
Narzędzie jest dostępne tylko w programie Visual Studio Enterprise. W przypadku pokrycia kodu platformy .NET można również użyć narzędzia wiersza polecenia dotnet-coverage.
C:\Program Files\Microsoft Visual Studio\2022\Enterprise> Microsoft.CodeCoverage.Console --help
Description:
Dynamic code coverage tools.
Usage:
codecoverage [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 binary.
Polecenia zbierania, łączenia, zamykania, scalania i migawek
Narzędzie Microsoft.CodeCoverage.Console jest rozszerzeniem narzędzia dotnet-coverage dotnet. Dokumentacja dotycząca poleceń zbierania, łączenia, zamykania, scalania i migawek można znaleźć tutaj.
Program Microsoft.CodeCoverage.Console obsługuje dodatkowe funkcje zabezpieczeń umożliwiające zbieranie danych pokrycia kodu ASP.NET z usług IIS. Ponadto narzędzie Microsoft.CodeCoverage.Console obsługuje zbieranie pokrycia kodu dla kodu C++. Polecenie instrument
jest specyficzne dla tych scenariuszy.
Instrument , polecenie
Polecenie instrument jest używane do instrumentowania natywnych lub zarządzanych danych binarnych na dysku.
Streszczenie
Microsoft.CodeCoverage.Console 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>
Argumenty
<input-file>
Wejściowy plik binarny.
Opcje
-s|--settings <settings>
Ustawia ścieżkę do ustawień pokrycia kodu XML.
-id|--session-id <session-id>
Określa identyfikator sesji pokrycia kodu. Jeśli nie zostanie podana, narzędzie generuje losowy identyfikator GUID.
-o|--output <output>
Ustawia ścieżkę do pliku wyjściowego binarnego. Jeśli nie zostanie podana, instrumentacja zostanie wykonana w miejscu.
-l|--log-file <log-file>
Ustawia ścieżkę pliku dziennika. Po podaniu katalogu (z separatorem ścieżki na końcu) dla każdego procesu analiz generowany jest nowy plik dziennika.
-ll|--log-level <log-level>
Ustawia poziom dziennika. Obsługiwane wartości:
Error
,Info
iVerbose
.
Statyczne pokrycie kodu dla kodu C++
Narzędzie Microsoft.CodeCoverage.Console może służyć do zbierania pokrycia kodu dla języka C++ przy użyciu instrumentacji statycznej. Dostępne są trzy różne metody. Załóżmy, że mamy prostą aplikację konsolową języka C++ (połączoną z opcją /PROFILE):
D:\ConsoleApplication\x64\Debug> .\ConsoleApplication.exe
Hello World!
Pokrycie kodu przy użyciu polecenia collect z plikiem konfiguracji
Jeśli nie chcesz używać instrument
polecenia , możesz zamiast tego użyć pliku konfiguracji, aby określić pliki do instrumentowania w następujący sposób:
<ModulePaths>
<IncludeDirectories>
<Directory>D:\ConsoleApplication\x64\Debug</Directory>
</IncludeDirectories>
</ModulePaths>
Następnie zbierz pokrycie kodu w następujący sposób:
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.
Pokrycie kodu przy użyciu instrumentu i zbieranie poleceń
Przed zebraniem danych pokrycia kodu najpierw instrumentuj dane binarne w następujący sposób:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console instrument ConsoleApplication.exe
Input file successfully instrumented.
Następnie zbierz pokrycie kodu w następujący sposób:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect .\ConsoleApplication.exe
SessionId: e85e657f-9ff3-42a0-88d7-2349598a1ecd
Hello World!
Code coverage results: output.coverage.
Pokrycie kodu za pomocą polecenia instrument i zbieranie poleceń w trybie serwera
Przy użyciu tej metody można oddzielić kolekcję pokrycia kodu od uruchamiania aplikacji. Najpierw instrumentuj plik binarny w następujący sposób:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console instrument --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 ConsoleApplication.exe
Input file successfully instrumented.
Uwaga
Identyfikator sesji musi być używany w tym scenariuszu, aby upewnić się, że aplikacja może łączyć się z zewnętrznym modułem zbierającym i dostarczać dane.
W drugim kroku należy uruchomić moduł zbierający pokrycie kodu w następujący sposób:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 --server-mode
SessionId: 73c34ce5-501c-4369-a4cb-04d31427d1a4
Następnie uruchom aplikację w następujący sposób:
D:\ConsoleApplication\x64\Debug>.\ConsoleApplication.exe
Hello World!
Uwaga
Instrumentowany natywny plik binarny zawiera odwołanie do static_covrun64.dll
elementu . Upewnij się, że ten plik znajduje się obok instrumentowanego pliku binarnego lub katalogu, w którym static_covrun64.dll
znajduje się, znajduje się w zmiennej środowiskowej Path
. Polecenia collect
i connect
dodają odpowiednie katalogi do Path
automatycznego.
Na koniec zamknij moduł zbierający w następujący sposób:
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console shutdown 73c34ce5-501c-4369-a4cb-04d31427d1a4