팁 (조언)
Microsoft.Testing.Platform.MSBuild(MSTest, NUnit 및 xUnit 실행기에서 전이적으로 포함)를 사용하는 경우 NuGet 패키지를 설치할 때 코드 검사 확장이 자동으로 등록되며 코드 변경이 필요하지 않습니다.
코드 검사 기능을 사용하여 단위 테스트와 같은 코딩된 테스트에서 테스트할 project 코드의 비율을 확인할 수 있습니다. 버그를 효과적으로 방지하려면 테스트에서 코드의 상당 부분을 테스트하거나 포함하도록 해야 합니다.
Microsoft 코드 커버리지
Microsoft 코드 검사 분석은 관리형(CLR) 및 관리되지 않는(네이티브) 코드 모두에 대해 가능합니다. 정적 계측과 동적 계측이 모두 지원됩니다. 이 확장에는 Microsoft.Testing.Extensions.CodeCoverage NuGet 패키지가 필요합니다.
비고
기본적으로 확장에서 관리되지 않는(네이티브) 코드 검사를 사용할 수 없습니다. 필요한 경우 플래그 EnableStaticNativeInstrumentation 및 EnableDynamicNativeInstrumentation 사용하여 사용하도록 설정합니다.
관리되지 않는 코드 검사에 대한 자세한 내용은 정적 및 동적 네이티브 계측참조하세요.
중요합니다
패키지는 Microsoft .NET 라이브러리의 폐쇄 소스 무료 사용 라이선스 모델과 함께 배송됩니다.
Microsoft 코드 검사에 대한 자세한 내용은 해당 GitHub 페이지 참조하세요.
옵션
| Option | Description |
|---|---|
--coverage |
dotnet-coverage 도구를 사용하여 코드 커버리지를 수집합니다. |
--coverage-output |
생성된 커버리지 파일의 이름 또는 경로입니다. 기본적으로 파일은 TestResults/<guid>.coverage. |
--coverage-output-format |
출력 파일 형식입니다. 지원되는 값은 coverage, xml및 cobertura. 기본값은 coverage입니다. |
--coverage-settings |
XML 코드 검사 설정. |
사용 가능한 옵션에 대한 자세한 내용은 settings 및 샘플 참조하세요.
비고
Microsoft.Testing.Extensions.CodeCoverage의 IncludeTestAssembly 기본값은 false이고, VSTest에서는 true였습니다. 즉, 테스트 프로젝트는 기본적으로 제외됩니다. 자세한 내용은 코드 검사 구성 참조하세요.
버전 호환성
다음 표에서는 다양한 버전의 Microsoft.Testing.Extensions.CodeCoverage와 Microsoft.Testing.Platform 간의 호환성을 보여 줍니다.
| Microsoft.Testing.Extensions.CodeCoverage | Microsoft.Testing.Platform |
|---|---|
| 18.1.x | 2.0.x |
| 18.0.x | 1.8.x |
| 17.14.x | 1.6.2 |
비고
최상의 호환성 및 최신 기능을 위해 두 패키지의 최신 버전을 함께 사용하는 것이 좋습니다.
장식용 침대 커버
Coverlet Microsoft Testing Platform Integration(coverlet.MTP)은 기능을 구현 coverlet.collector 하는 Microsoft.Testing.Platform의 네이티브 확장입니다.
테스트 프로젝트에 NuGet 패키지를 추가합니다.
dotnet add package coverlet.MTP
코드 커버리지를 수집하려면 --coverlet 플래그를 사용하여 테스트를 실행해야 합니다.
dotnet test --coverlet
또는 플래그를 --coverlet 사용하여 테스트 실행 파일을 실행합니다.
dotnet exec <test-assembly.dll> --coverlet
테스트 실행 coverage.json 후 결과가 포함된 파일이 현재 디렉터리에 생성됩니다.
옵션
| Option | Description |
|---|---|
--coverlet |
코드 커버리지 데이터 수집을 활성화합니다. |
--coverlet-output-format <format> |
커버리지 보고서의 출력 형식 지원되는 형식: json, lcov, opencovercobertura및 teamcity. 두 개 이상의 형식을 포함하도록 여러 번 지정합니다. |
--coverlet-include <filter> |
필터와 일치하는 어셈블리를 포함합니다(예: [Assembly]Type.). 필터를 더 추가하려면 여러 번 지정합니다. |
--coverlet-include-directory <path> |
원본 파일에 대한 추가 디렉터리를 포함합니다. 디렉터리를 더 추가하려면 여러 번 지정합니다. |
--coverlet-exclude <filter> |
필터와 일치하는 어셈블리 제외(예: [Assembly]Type.) 필터를 더 추가하려면 여러 번 지정합니다. |
--coverlet-exclude-by-file <pattern> |
glob 패턴과 일치하는 원본 파일을 제외합니다. 여러 패턴을 추가하려면 여러 번 지정하십시오. |
--coverlet-exclude-by-attribute <attribute> |
특정 특성으로 데코레이트된 메서드 또는 클래스를 제외합니다. 특성을 더 추가하려면 여러 번 지정합니다. |
--coverlet-include-test-assembly |
검사 보고서에 테스트 어셈블리를 포함합니다. |
--coverlet-single-hit |
적중 횟수를 코드의 각 위치에 대해 하나씩 제한합니다. |
--coverlet-skip-auto-props |
테스트 커버리지에서 자동 구현 속성을 제외합니다. |
--coverlet-does-not-return-attribute <attribute> |
메서드를 반환하지 않는 것으로 표시하는 특성입니다. 특성을 더 추가하려면 여러 번 지정합니다. |
--coverlet-exclude-assemblies-without-sources <value> |
소스 코드 없이 어셈블리를 제외합니다. 값: MissingAll, MissingAny및 None. |
자세한 내용은 coverlet.MTP 설명서를 참조하세요.
.NET