Microsoft.CodeCoverage.Console 도구
Microsoft.CodeCoverage.Console은 명령줄 도구입니다. 이 도구는 C++ 및 C# 코드에 대한 코드 검사를 수집하는 데 사용할 수 있습니다. 코드 검사 보고서 병합 및 변환도 지원합니다. 이 도구는 테스트가 아닌 시나리오(예: 간단한 콘솔 애플리케이션의 경우)에서 코드 검사를 수집하는 데 사용할 수 있습니다.
Microsoft.CodeCoverage.Console은 Common7\IDE\Extensions\Microsoft\CodeCoverage.Console
폴더 아래 Visual Studio 2022 17.3에서 사용할 수 있습니다. 이 도구는 개발자 명령 프롬프트 및 개발자 PowerShell에서 사용할 수 있습니다.
참고 항목
이 도구는 Visual Studio Enterprise에서만 사용할 수 있습니다. .NET 코드 검사의 경우 명령줄 도구인 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.
Collect(수집), connect(연결), shutdown(종료), merge(병합) 및 snapshot(스냅샷) 명령
Microsoft.CodeCoverage.Console 도구는 dotnet-coverage dotnet 도구에 대한 확장입니다. collect, connect, shutdown, merge 및 snapshot 명령에 대한 설명서는 여기에서 찾을 수 있습니다.
Microsoft.CodeCoverage.Console은 IIS에서 ASP.NET 코드 커버리지 데이터를 수집할 수 있는 추가 보안 기능을 지원합니다. 또한 Microsoft.CodeCoverage.Console 도구는 C++ 코드에 대한 코드 검사 수집을 지원합니다. instrument
명령은 이러한 시나리오와 관련이 있습니다.
Instrument(계측) 명령
Instrument 명령은 디스크에서 네이티브 또는 관리되는 이진 파일을 계측하는 데 사용됩니다.
개요
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>
인수
<input-file>
입력 이진 파일입니다.
옵션
-s|--settings <settings>
XML 코드 검사 설정의 경로를 설정합니다.
-id|--session-id <session-id>
코드 검사 세션 ID를 지정합니다. 제공되지 않는 경우 이 도구는 임의의 GUID를 생성합니다.
-o|--output <output>
출력 이진 파일에 대한 경로를 설정합니다. 지정하지 않으면 계측이 현재 위치에서 수행됩니다.
-l|--log-file <log-file>
로그 파일 경로를 설정합니다. 디렉터리(끝에 경로 구분 기호 포함)가 제공될 때 분석 중인 각 프로세스에 대해 새 로그 파일이 생성됩니다.
-ll|--log-level <log-level>
로그 수준을 설정합니다. 지원되는 값은
Error
,Info
및Verbose
입니다.
C++ 코드에 대한 정적 코드 검사
Microsoft.CodeCoverage.Console 도구를 사용하면 정적 계측을 이용해 C++에 대한 코드 검사를 수집할 수 있습니다. 이 검사에서는 세 가지 방법을 사용할 수 있습니다. 이를 설명하기 위해 간단한 C++ 콘솔 애플리케이션(/PROFILE 옵션과 연결됨)이 있다고 가정해 보겠습니다.
D:\ConsoleApplication\x64\Debug> .\ConsoleApplication.exe
Hello World!
구성 파일과 함께 collect 명령을 사용하는 코드 검사
instrument
명령을 사용하지 않으려면 다음과 같이 구성 파일을 사용하여 계측할 파일을 지정할 수 있습니다.
<ModulePaths>
<IncludeDirectories>
<Directory>D:\ConsoleApplication\x64\Debug</Directory>
</IncludeDirectories>
</ModulePaths>
그런 다음 다음과 같이 코드 검사를 수집합니다.
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.
계측기 및 수집 명령을 사용한 코드 검사
코드 검사 데이터를 수집하기 전에 먼저 다음과 같이 바이너리를 계측합니다.
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console instrument ConsoleApplication.exe
Input file successfully instrumented.
그런 다음 다음과 같이 코드 검사를 수집합니다.
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect .\ConsoleApplication.exe
SessionId: e85e657f-9ff3-42a0-88d7-2349598a1ecd
Hello World!
Code coverage results: output.coverage.
서버 모드에서 기기 명령 및 수집 명령을 사용한 코드 검사
이 방법을 사용하면 코드 검사 수집과 애플리케이션 실행을 분리할 수 있습니다. 먼저 다음과 같이 이진 파일을 계측합니다.
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console instrument --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 ConsoleApplication.exe
Input file successfully instrumented.
참고
애플리케이션이 외부 수집기에 데이터를 연결하고 제공할 수 있도록 하려면 이 시나리오에서 세션 ID를 사용해야 합니다.
두 번째 단계에서는 다음과 같이 코드 검사 수집기를 시작해야 합니다.
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console collect --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 --server-mode
SessionId: 73c34ce5-501c-4369-a4cb-04d31427d1a4
그런 다음 다음과 같이 응용 프로그램을 시작합니다.
D:\ConsoleApplication\x64\Debug>.\ConsoleApplication.exe
Hello World!
참고 항목
계측된 네이티브 이진 파일에는 static_covrun64.dll
에 대한 참조가 포함되어 있습니다. 이 파일이 계측된 이진 파일 옆에 있는지 아니면 static_covrun64.dll
이 위치한 디렉터리가 Path
환경 변수에 나열되어 있는지 확인합니다. collect
및 connect
명령은 적절한 디렉터리를 Path
에 자동으로 추가합니다.
마지막으로 다음과 같이 수집기를 닫습니다.
D:\ConsoleApplication\x64\Debug>Microsoft.CodeCoverage.Console shutdown 73c34ce5-501c-4369-a4cb-04d31427d1a4