Visual Studio Market Place(vs 2019), Visual Studio Market Place(vs 2022)에서 이 확장을 다운로드하거나 릴리스에서 다운로드하세요. 이전 버전은 여기에서 얻을 수 있습니다.
.Net의 경우 - 테스트 어댑터는 너겟 패키지입니다. 예를 들어 NUnit Test Adapter 확장으로는 충분하지 않습니다.
Fine Code Coverage는 3가지 다른 적용 범위 도구 중 하나를 사용하여 코드 적용 범위를 제공합니다. 이전 릴리스에는 OpenCover와 Coverlet이라는 두 가지 적용 도구가 사용되었으며 이를 '기존 적용 범위'라고 합니다.
이제 Microsoft는 Visual Studio Fine Code Coverage 열거 옵션 RunMsCodeCoverage를 설정하여 사용하도록 선택할 수 있는 무료 적용 솔루션을 제공합니다. 이는 아마도 대부분의 개발자가 선호하는 적용 도구일 것입니다. 현재 베타 버전입니다.
기존 적용 범위에서는 FCC가 각 도구의 제외/포함 옵션에 대한 추상화를 제공하는 것이 가능했습니다. 이 추상화는 MS 코드 적용 범위에서는 작동하지 않습니다.
따라서 Ms 적용 범위와 이전 적용 범위에 대한 별도의 구성 옵션과 둘에 공통적인 옵션이 있음을 알 수 있습니다. 어셈블리 수준 제외 및 포함이 가능합니다. ExcludeAssemblies 및 includeAssemblies를 참조하세요. 구성은 (주로) Visual Studio 옵션, Finecodecoverage-settings.xml 파일 및 프로젝트 msbuild 속성에 따라 결정됩니다. 이러한 설정은 모두 선택 사항입니다. 프로젝트 범위가 있는 옵션의 경우 이러한 설정은 낮은 수준이 재정의되거나 컬렉션의 경우 상위 수준과 재정의되거나 병합되는 계층 구조를 형성합니다. 이에 대해서는 나중에 자세히 설명합니다.
사용된 적용 범위 도구에 관계없이 프로세스는 FCC가 Visual Studio의 테스트 탐색기에 반응하는 것으로 시작됩니다. 3가지 커버리지 도구 중 하나가 커버리지 결과를 제공하며 결과는 Fine Code Coverage Tool 창의 버튼을 통해 열 수 있습니다. 이 적용 범위는 동적이지 않으며 마지막으로 테스트를 실행했을 때 얻은 적용 범위를 나타냅니다. 커버리지가 오래되면 도구에서 'FCC Clear UI' 버튼을 클릭하거나 커버리지를 다시 실행할 수 있습니다.
FCC가 코드 적용 범위를 어떻게 진행하고 있는지에 대한 자세한 내용은 Fine Code Coverage Tool 창의 적용 범위 로그 탭에서 확인할 수 있으며 FCC 출력 창 창에서 더 자세한 로그를 확인할 수 있습니다. 문제가 발생하는 경우 출력 창에서 로그를 제공하면 문제의 성격을 이해하는 데 도움이 됩니다.
Fine Code Coverage Tool 창에 단일 통합 보고서를 제공합니다. 보고서에는 클래스 파일을 열 수 있는 기능을 갖춘 라인 및 지점 적용 범위와 위험 핫스팟이 표시됩니다.
코드 적용 상태를 나타내는 색상 여백. 계측된(포함 및 분석 가능한) 코드 줄은 덮여 있거나, 드러나지 않거나 부분적으로 덮여 있습니다. 이는 모든 분기가 실행되지 않았음을 의미합니다.
FCC는 코드를 변경하면 이전에 계측된 코드가 더 이상 계측 상태를 표시하지 않는 더티 영역 개념을 제공합니다.
C# 및 Visual Basic의 경우 추가 적용 범위 정보를 제공합니다.
또한 FCC를 사용하면 적용 범위에 포함되지 않은 코드와 마지막 적용 범위 실행 이후 추가된 새 줄을 볼 수 있습니다.
옵션에서 더티 라인 색상과 새로운 라인 색상을 모두 켜야 합니다.
원하는 경우 사용 가능한 Visual Studio 옵션을 설정하여 줄을 강조 표시할 수도 있습니다. 자세한 내용은 계속 읽어보세요.
색상은 Visual Studio / 도구 / 옵션 / 환경 / 글꼴 및 색상 / 텍스트 편집기 / 표시 항목을 통해 제어할 수 있습니다.
Visual Studio Community, Professional 및 Enterprise의 경우 설정을 사용할 수 있습니다.
적용 범위 접촉 영역 FCC
적용 범위 부분적으로 접촉된 영역 FCC
적용 범위 미접촉 지역 FCC
적용 범위 더러운 영역 FCC
적용 범위 새로운 회선 지역 FCC
적용 범위는 포함되지 않음 영역 FCC
FCC 아래 항목을 제공하는 버전의 경우 기본적으로 해당 FCC 항목보다 이러한 항목을 사용하므로 테마에 정의된 색상을 사용할 수 있습니다. 사용 가능한 5개 항목에 대해 일관성을 유지하려면 UseEnterpriseFontsAndColors를 false로 설정할 수 있습니다.
적용 범위: 손길이 닿지 않은 지역
적용 범위 부분적으로 접촉된 영역
적용 범위 접촉 영역
Visual Studio 옵션 EditorCoverageColouringMode를 Off로 설정하여 편집기 색상 지정을 끌 수 있습니다. 성능 문제가 있는 경우 DoNotUseRoslynWhenTextChanges 옵션을 설정할 수도 있습니다. 그렇게 하면 새로운 라인의 색상이 좋지 않게 됩니다. EditorCoverageColouringMode 옵션 중 하나로 전환하면 적용 범위를 다시 실행해야 합니다.
편집기 색상을 전환할 수 있습니다. FCC는 도구 메뉴에 메뉴 버튼인 토글 표시기를 추가합니다. 도구 / 옵션 / 환경 / 키보드와 같은 키보드 단축키를 생성하고 "ToggleIndicators"가 포함된 명령을 표시할 수도 있습니다.
@code 블록 적용 범위 라인이 있는 Blazor 구성 요소의 경우 이러한 지역 외부에 생성될 수 있습니다. FCC에서 Roslyn 구문 트리를 사용할 수 있는 경우 BlazorCoverageLinesFromGeneratedSource 옵션을 true로 설정하여 .razor 파일의 적용 범위 줄을 생성된 소스의 범위 줄로 제한할 수 있습니다.
FCC는 Visual Studio 편집기를 추적하고 파일이 닫힐 때 이 정보를 저장합니다. 파일을 다시 열 때 문서 창 외부에서 텍스트가 변경된 경우 적용 범위 선이 더 이상 올바르지 않을 것으로 예상되므로 이 파일에 대한 적용 범위 표시가 없습니다.
FCC가 적용 범위를 수집하는 동안 파일을 편집하는 경우에도 편집자 표시가 없습니다.
이전 적용 범위에서는 FCC가 테스트 dll 및 종속성을 복사하고 해당 파일에 대해 OpenCover 또는 Coverlet을 실행해야 했습니다. MS 코드 적용 범위에는 필요하지 않습니다. 이전 적용 범위는 모든 테스트를 다시 실행하기 위해 적용 범위 도구를 시작하기 전에 테스트가 완료될 때까지 기다립니다. MS 코드 적용 범위에는 필요하지 않습니다. 이전 적용 범위는 모든 테스트를 기반으로 했습니다. MS 코드 적용 범위는 테스트 탐색기에서 선택한 테스트의 적용 범위입니다.
C++를 지원합니다! FCC는 C++ 프로젝트에서 제대로 테스트되지 않았지만 Google 테스트로 테스트된 간단한 C++ 클래스에서는 FCC가 적용 범위를 제공합니다.
먼저 RunMsCodeCoverage 옵션을 아니요에서 변경해야 합니다.
MS 코드 적용 범위에는 코드 적용 범위에 맞게 적절하게 구성된 runsettings 파일이 필요합니다. 이를 위해서는 ms 코드 적용 패키지가 있어야 하며 TestAdaptersPaths 요소를 사용하여 이를 가리키고 ms 데이터 수집기를 지정해야 합니다. 제외 및 포함도 실행 설정에 지정됩니다. 나는 이것이 어떻게 작동하는지에 대한 문서가 충분히 명확하지 않다고 생각하므로 이 문제를 살펴보고 싶을 수도 있습니다.
FCC는 귀하에게 이를 요구하지 않습니다. runsettings를 제공하지 않고 RunMsCodeCoverage가 Yes인 경우 FCC는 이를 생성하고 프로젝트 파일에 필요한 항목을 작성합니다.
테스트를 실행하는 동안 Visual Studio에서 테스트 프로젝트 파일을 열어두면 FCC가 테스트가 끝날 때 항목을 제거할 때 충돌 경고가 나타날 수 있습니다. RunMsCodeCoverage가 IfInRunSettings인 경우 프로젝트에 올바르게 구성된 ms 데이터 수집기 요소를 포함하는 실행 설정이 있으면 FCC는 수집된 결과를 처리합니다.
FCC에는 ms 코드 적용 패키지가 포함되어 있으며 테스트 탐색기 창에서 실행되는 각 테스트 프로젝트에 필요한 runsettings 파일을 생성합니다. 제외 및 포함은 이전 적용 범위와 유사한 방식으로 결합된 설정에서 제공됩니다. ms 코드 적용 범위는 regex를 사용하고 Coverlet 및 OpenCover에 대한 제외/포함 방법이 다르기 때문에 ms 특정 Visual Studio 옵션 및 관련 요소가 있습니다.
FCC는 각 테스트 프로젝트에 대해 runsettings 파일을 제공하므로(전체 또는 프로젝트별 솔루션을 제공하지 않은 경우) 프로젝트 파일에 RunSettingsFilePath 요소를 작성해야 합니다.
FCC가 프로젝트 파일에서 이 요소의 값을 지우더라도 여전히 존재합니다.
FCC는 문자열 대체를 사용하여 템플릿에서 실행 설정을 생성합니다. 원하는 경우 자신만의 템플릿을 제공할 수 있습니다. FCC는 프로젝트 디렉터리 또는 솔루션 디렉터리에서 fcc-ms-runsettings-template.xml을 찾습니다. 템플릿은 유효한 XML 문서여야 하지만 모든 실행 설정 요소를 제공할 필요는 없습니다. FCC는 교체 가능한 ResultsDirectory 및 TestAdaptersPaths(및 필요한 경우 컨테이너 RunConfiguration 요소) 요소가 없는 경우 추가합니다. FCC는 또한 ms DataCollector / Configuration / CodeCoverage 교체 가능 요소가 없는 경우 추가합니다. 또한 제공되지 않은 경우 비배제/포함 권장 CodeCoverage 요소 AllowLowIntegrityProcesses, CollectFromChildProcesses, CollectAspDotNet 및 UseVerifyingInstrumentation을 추가합니다. UseVerifyingInstrumentation은 .Net Framework의 경우 false입니다. 생성된 실행 설정을 보려면 프로젝트 파일의 RunSettingsFilePath 요소를 사용하세요.
FCC에서 제공했을 자체 요소를 제공하는 사용자 정의 템플릿의 경우 템플릿 교체에 참여하려면 %fcc_replace% 유형의 문자열을 추가해야 합니다.
제외 및 포함은 "%fcc_modulepaths_exclude%" 형식을 따릅니다. FCC가 fcc에서 제공한 ms 코드 적용 범위 경로를 TestAdaptersPaths에 제공하려면 %fcc_testadapter%를 사용하세요.
자신의 runsettings 파일을 사용하고 FCC가 해당 파일에 추가하고 교체하도록 하는 것도 가능합니다. FCC는 TestAdaptersPaths 요소와 ms 데이터 수집기가 있는지 확인합니다. 템플릿과 달리 ms 데이터 수집기가 있으면 XML에는 대체 항목만 적용됩니다.
MS 코드 적용 범위는 제공되지 않은 경우 기본 구성/CodeCoverage 요소를 제공합니다. 또한 mergeDefaults='false' 속성을 추가하지 않는 한 기본 제외 항목이 없으면 추가하거나 병합합니다. 예를 들어 속성은 ExcludeFromCodeCoverageAttribute를 제외합니다. 관심이 있으시면 ...AppDataLocalFineCodeCoveragemsCodeCoverage_version_buildnetstandard1.0Microsoft.VisualStudio.TraceDataCollector.dll 및 DynamicCoverageDataCollector를 참조하세요.
문제를 보고하기 전에 문제 해결을 확인하십시오.
Dll은 테스트에 영향을 미칠 수 있는 프로젝트 출력 폴더의 하위 폴더에 복사됩니다. 대안은 AdjacentBuildOutput 옵션을 true로 설정하는 것입니다. 적용 범위는 기존 스타일 프로젝트의 경우 OpenCover, 새로운 스타일의 SDK 프로젝트의 경우 Coverlet에서 제공됩니다. FCC는 둘 사이의 차이점을 무시할 수 있도록 두 가지 모두에 대한 추상화를 제공하지만 실행될 커버 도구를 인식하는 것이 중요한 상황이 있습니다. 이는 Coverlet을 사용할 때 가장 분명하게 나타납니다. 자세한 내용은 계속 읽어 보십시오.
다른 시나리오는 특정 버전의 적용 범위 도구를 사용하려는 경우입니다. 이는 구성될 수 있습니다.
FCC가 활용하는 적용 범위 도구는 기본적으로 Environment.SpecialFolder.LocalApplicationData
내의 FineCodeCoverage 디렉터리에 설치됩니다. 이는 ToolsDirectory Visual Studio 옵션을 사용하여 변경할 수 있습니다. 이 포함 디렉터리가 있는지 확인하고 다시 시작하면 도구가 해당 디렉터리에 설치됩니다.
(일부) 단위 테스트를 실행하고 ...
계층 구조는 다음과 같습니다.
a) Visual Studio 옵션
b) Finecodecoverage-settings.xml 파일
이는 프로젝트 디렉터리에서 디렉터리 구조를 탐색하여 찾을 수 있습니다. topLevel='true' 속성을 루트 요소에 적용하면 걷기가 중지됩니다.
프로젝트 디렉터리에 Finecodecoverage-settings.xml이 있고 솔루션 디렉터리에 Finecodecoverage-settings.xml이 있으면 계층 구조는 다음과 같습니다.
비주얼 스튜디오 옵션
솔루션 수준 Finecodecoverage-settings.xml
프로젝트 수준 Finecodecoverage-settings.xml
<FineCodeCoverage>
<Enabled>
True
</Enabled>
<!-- and more -->
</FineCodeCoverage>
c) msbuild 프로젝트 파일
이러한 설정을 제공하는 방법에는 두 가지가 있습니다. 프로젝트 파일에서 직접
<PropertyGroup Label="FineCodeCoverage">
<Enabled>
True
</Enabled>
<Exclude>
[ThirdParty.*]*
[FourthParty]*
</Exclude>
<Include>
[*]*
</Include>
<ExcludeByFile>
**/Migrations/*
**/Hacks/*.cs
</ExcludeByFile>
<ExcludeByAttribute>
MyCustomExcludeFromCodeCoverage
</ExcludeByAttribute>
<IncludeTestAssembly>
True
</IncludeTestAssembly>
<ModulePathsExclude>
.*Fabrikam.Math.UnitTest.dll
</ModulePathsExclude>
<!-- and more -->
</PropertyGroup>
FineCodeCoverage 요소를 사용합니다.
<PropertyGroup>
<FineCodeCoverage>
<Enabled>
True
</Enabled>
<!-- and more -->
</FineCodeCoverage>
</PropertyGroup>
이는 프로젝트 파일 외부에 프로젝트 설정을 저장하고 msbuild 가져오기를 사용하는 경우 필요합니다 .
msbuild가 사용자 정의 속성을 지원하지 않기 때문에 설정 요소를 위 수준의 요소와 병합하려는 경우에도 필요합니다 .
기본값은 각 컬렉션 속성을 덮어쓰는 것입니다. 루트 요소에서 defaultMerge='true'를 설정하여 모든 설정에 대해 이를 변경할 수 있습니다.
설정 요소에 병합 속성을 제공하면 해당 속성이 사용됩니다.
이는 전이적이지 않습니다.
<PropertyGroup>
<FCCExcludeFromCodeCoverage/>
</PropertyGroup>
<PropertyGroup>
<UseDataCollector/>
</PropertyGroup>
Coverlet에는 다른 "드라이버"가 있습니다. Fine Code Coverage는 과거에는 Coverlet 콘솔 드라이버만 사용했습니다. 여기에는 몇 가지 문제가 있습니다. 적용 범위가 0%이거나 적용 범위가 일관되지 않은 경우 이제 데이터 수집기 드라이버로 전환할 수 있습니다. 이것은 더 나은 드라이버이지만 모든 프로젝트에 사용할 수는 없습니다. 현재는 이것이 선택되어 있습니다. 앞으로는 Fine Code Coverage가 적절한 드라이버를 결정할 것입니다. 버전 지원에 대해서는 표지 문서를 참조하세요.
FCC가 내부적으로 제공하므로 nuget Coverlet.collector 패키지를 추가할 필요가 없습니다.
Fine Code Coverage는 다음 두 가지 상황에서 데이터 수집기 드라이버를 사용합니다.
Coverlet 데이터 수집기 설정은 여기에서 찾을 수 있습니다. 위의 옵션 2)를 사용하는 경우 프로젝트 속성이 우선 적용되는 프로젝트 속성(위) 및 전역 Visual Studio 옵션(아래 참조)에서 공통 설정(제외 및 포함)이 생성됩니다. 옵션 1)을 사용하는 경우 공통 설정 구성 요소가 없고 RunSettingsOnly 옵션(아래 참조)이 false로 변경된 경우에만 프로젝트 및 전역 옵션이 사용됩니다.
옵션 | 설명 |
---|---|
흔한 | |
EditorCoverageColoringMode | 끄기로 설정하거나 성능 문제가 있는 경우 DoNotUseRoslynWhenTextChanges로 설정합니다. |
BlazorCoverageLinesFromGeneratedSource | .razor 파일의 적용 범위 라인을 생성된 소스의 적용 범위 라인으로 제한하려면 true로 설정합니다(사용 가능한 경우). |
쇼에디터보도 | 모든 편집자 적용 범위 표시기를 비활성화하려면 false로 설정하세요. |
ShowCoverageInGlyphMargin | 문자 여백에 적용 범위 표시를 방지하려면 false로 설정하세요. |
ShowCoveredInGlyphMargin | 문자 모양 여백에 표시가 가려지는 것을 방지하려면 false로 설정하세요. |
ShowUncoveredInGlyphMargin | 글리프 여백에서 표시가 드러나지 않도록 하려면 false로 설정하세요. |
ShowPartiallyCoveredInGlyphMargin | 문자 모양 여백에서 표시가 부분적으로 가려지는 것을 방지하려면 false로 설정하세요. |
ShowDirtyInGlyphMargin | 글리프 여백에 더티 마크를 표시하려면 true로 설정하십시오. |
ShowNewInGlyphMargin | 문자 여백에 새 선 표시를 표시하려면 true로 설정하세요. |
ShowCoverageIn개요마진 | 개요 여백에 적용 범위 표시를 방지하려면 false로 설정하세요. |
ShowCoveredIn개요여백 | 개요 여백에서 표시가 가려지는 것을 방지하려면 false로 설정하세요. |
표시UncoveredIn개요여백 | 개요 여백에서 표시되지 않은 표시를 방지하려면 false로 설정하세요. |
ShowPartially CoveredIn개요여백 | 개요 여백에서 마크가 부분적으로 가려지는 것을 방지하려면 false로 설정하세요. |
ShowDirtyIn개요여백 | 개요 여백에 더티 마크를 표시하려면 true로 설정하세요. |
ShowNewIn개요여백 | 개요 여백에 새 선 표시를 표시하려면 true로 설정하세요. |
ShowLineCoverage하이라이트 | 커버리지 라인 강조를 허용하려면 true로 설정하세요. |
ShowLineCovered강조 표시 | 가려진 선 강조 표시를 방지하려면 false로 설정하세요. |
ShowLineUncovered하이라이트 | 노출되지 않은 줄 강조 표시를 방지하려면 false로 설정하세요. |
표시선부분적으로 가려짐강조 표시 | 부분적으로 가려진 선 강조 표시를 방지하려면 false로 설정하세요. |
표시선더러운강조 | 더티 라인 강조 표시를 표시하려면 true로 설정하십시오. |
ShowLineNew강조 표시 | 새 줄 강조 표시를 표시하려면 true로 설정하세요. |
UseEnterpriseFontsAndColors | FCC 글꼴 및 색상 항목을 사용하려면 false로 설정하세요. |
표시도구창도구 모음 | 도구 창에서 도구 모음을 숨기려면 false로 설정합니다. Visual Studio를 다시 시작해야 합니다. 도구 모음에는 Cobertura xml 및 위험 핫스팟을 보기 위한 버튼이 있습니다. |
FCC 솔루션 출력 디렉터리 이름 | 솔루션의 하위 폴더에 fcc 출력을 표시하려면 이 이름을 제공하세요. |
도구디렉토리 | 도구 하위 폴더를 복사하는 폴더입니다. 이미 존재해야 합니다. VS를 다시 시작해야 합니다. |
순환 복잡성에 대한 임계값 | 순환 복잡도가 메서드의 이 값을 초과하면 해당 메서드가 위험 핫스팟 탭에 표시됩니다. |
StickyCoverage테이블 | 고정된 광고를 가지려면 적용 범위 테이블에 대해 true로 설정하십시오. |
네임스페이스 클래스 | 보고서의 유형을 짧은 형식으로 표시하려면 false로 설정하십시오. 그룹화에 영향을 미칩니다. |
네임스페이스자격 | NamespacedClasses가 true일 때 보고서 유형의 제한을 제어합니다. FullyQualified - 항상 정규화됩니다. AlwaysUnqualified - 항상 자격이 없습니다. UnqualifiedByNamespace - 네임스페이스별로 그룹화할 때 정규화되지 않았습니다. QualifiedByNamespaceLevel - 첫 번째 그룹화 수준 식별자 부분을 생략합니다. 고유성을 유지하면서 공간을 줄입니다. |
숨기기완전히 덮여 | 완전히 포함된 클래스, 네임스페이스 및 어셈블리를 숨기려면 true로 설정합니다. |
숨기기0보도 | 적용 범위가 0%인 클래스, 네임스페이스 및 어셈블리를 숨기려면 true로 설정합니다. |
숨기기0커버 가능 | 적용할 수 없는 클래스, 네임스페이스 및 어셈블리를 표시하려면 false로 설정합니다. |
활성화됨 | 적용 범위 출력의 활성화 여부를 지정합니다. |
비활성화됨보장 범위 없음 | 적용 범위를 비활성화하지 않으려면 VS Option Enabled=false에 대해 false로 설정합니다. |
테스트가 실패할 때 실행 | 기본적으로 테스트가 실패하면 적용 범위가 실행됩니다. 이를 방지하려면 false로 설정하세요. RunInParallel과 함께 사용할 수 없습니다. |
테스트가 초과될 때 실행 | 실행 중인 테스트 수를 기준으로만 실행 범위를 지정하려면 값을 지정하세요. RunInParallel과 함께 사용할 수 없습니다. |
RunMsCodeCoverage | 구성된 실행 설정으로만 수집하려면 IfInRunSettings로 변경합니다. 실행 설정 생성의 경우 예입니다. |
포함테스트어셈블리 | 테스트 어셈블리의 코드 적용 범위를 보고할지 여부를 지정합니다. |
참조된 프로젝트 포함 | 직접 참조된 모든 프로젝트를 포함에 추가하려면 true로 설정합니다. |
포함어셈블리 | 적용 범위에 포함할 어셈블리 목록을 제공합니다. 확장자가 없는 dll 이름이 일치에 사용됩니다. |
어셈블리 제외 | 적용 범위에서 제외할 어셈블리 목록을 제공합니다. 확장자가 없는 dll 이름이 일치에 사용됩니다. |
오픈커버/커버렛 | |
인접빌드출력 | 테스트가 경로에 따라 달라지는 경우 이를 true로 설정하세요. |
들어오지 못하게 하다 | 특정 모듈 및 유형(다중 값)을 제외하는 필터 표현식 |
포함하다 | 특정 모듈 및 유형(여러 값)을 포함하는 필터 표현식 |
파일별 제외 | OpenCover는 * 와일드카드 일치를 사용합니다. Coverlet은 파일 시스템 글로빙을 사용합니다. |
ExcludeByAttribute | 어셈블리, 유형 및 메서드 수준에서 특성 코드를 제외합니다. 정규화되거나 정규화되지 않은 속성 유형을 추가합니다. |
RunIn병렬 | 기본적으로 OpenCover/Coverlet 테스트가 실행된 후 적용 범위가 수행됩니다. 적용 범위를 즉시 실행하려면 true로 설정하세요. |
MS 코드 적용 범위 | 아래 각각은 runsettings 요소로 변환될 정규 표현식의 배열입니다. |
모듈경로제외 | 제외 - 어셈블리 이름이나 파일 경로로 지정된 어셈블리를 일치시킵니다. |
모듈경로포함 | 포함 - 어셈블리 이름이나 파일 경로로 지정된 어셈블리를 일치시킵니다. |
회사 이름제외 | 제외 - 회사 특성을 기준으로 조립품을 일치시킵니다. |
회사 이름포함 | 포함 - 회사 특성을 기준으로 조립품을 일치시킵니다. |
PublicKeyToken 제외 | 제외 - 공개 키 토큰으로 서명된 어셈블리를 일치시킵니다. |
PublicKeyToken에는 다음이 포함됩니다. | 포함 - 공개 키 토큰으로 서명된 어셈블리를 일치시킵니다. |
출처제외 | 제외 - 요소가 정의된 소스 파일의 경로 이름을 기준으로 요소를 일치시킵니다. |
출처는 다음을 포함합니다 | 포함 - 요소가 정의된 소스 파일의 경로 이름을 기준으로 요소를 일치시킵니다. |
속성제외 | 제외 - 지정된 속성이 있는 요소와 일치합니다. 속성의 전체 이름을 지정하세요. |
속성은 다음을 포함합니다 | 포함 - 지정된 속성을 가진 요소와 일치합니다. 속성의 전체 이름을 지정하세요. |
기능제외 | 제외 - 매개변수 목록을 포함하여 정규화된 이름으로 프로시저, 함수 또는 메서드를 일치시킵니다. |
기능은 다음과 같습니다 | 포함 - 매개변수 목록을 포함하여 정규화된 이름으로 프로시저, 함수 또는 메서드를 일치시킵니다. |
침대보 | |
실행설정만 | 실행 설정에 지정되지 않은 경우 Coverlet 데이터 수집기 구성 요소에 사용할 전역 및 프로젝트 옵션에 대해 false를 지정합니다. |
CoverletCollector디렉터리경로 | FCC 버전이 제공하지 않는 기능이 필요한 경우 커버렛 수집기 파일이 포함된 디렉터리의 경로를 지정하십시오. |
Coverlet콘솔로컬 | Coverlet 콘솔의 자체 dotnet 도구 로컬 설치를 사용하려면 true를 지정하십시오. |
CoverletConsoleCustomPath | FCC 버전이 제공하지 않는 기능이 필요한 경우 Coverlet Console exe의 경로를 지정하십시오. |
덮개콘솔글로벌 | Coverlet 콘솔의 자체 dotnet 도구 전역 설치를 사용하려면 true를 지정합니다. |
"CoverletConsole" 설정은 Local / CustomPath / Global보다 우선합니다. | |
오픈커버 | |
오픈커버등록 | FCC의 path32 또는 path64 결정이 잘못된 경우 기본값을 변경하십시오. |
OpenCoverTarget | 필요한 경우 고유한 대상을 제공하십시오. |
OpenCoverTargetArgs | 자체 대상을 제공하는 경우 추가 인수를 제공할 수도 있습니다. FCC는 테스트 DLL 경로를 제공합니다. |
OpenCoverCustomPath | FCC 버전이 제공하지 않는 기능이 필요한 경우 표지 실행을 여는 경로를 지정하십시오. |
ThresholdForNPath복잡성 | npath 복잡성이 메서드에 대한 이 값을 초과하면 해당 메서드가 위험 핫스팟 탭에 표시됩니다. |
ThresholdForCrapScore | 크랩 점수가 방법에 대해 이 값을 초과하면 해당 방법이 위험 핫스팟 탭에 표시됩니다. |
includeReferencedProjects를 true로 설정하고 싶을 수도 있습니다. 이렇게 하면 테스트 프레임워크는 포함되지 않고 코드만 포함됩니다.
Coverlet과 OpenCover는 필터 표현식을 사용합니다. 필터 표현식
와일드카드
* => 0개 이상의 문자와 일치합니다.
[*]* => 모든 어셈블리의 모든 유형.
[coverlet.*]Coverlet.Core.Coverage => Coverlet.*와 일치하는 어셈블리에 속하는 Coverlet.Core 네임스페이스의 Coverage 클래스(예: Coverlet.core)
[*]Coverlet.Core.Instrumentation.* => 모든 어셈블리의 Coverlet.Core.Instrumentation 네임스페이스에 속하는 모든 유형
[coverlet.*.tests]* => 덮개로 시작하는 모든 어셈블리의 모든 유형. .tests로 끝나는
'제외' 옵션과 '포함' 옵션은 함께 사용할 수 있지만 '제외' 옵션이 우선 적용됩니다.
MS 코드 적용 범위는 정규 표현식을 사용합니다. 코드 검사 분석에서 어셈블리나 특정 형식 및 멤버를 포함하거나 제외할 수 있습니다. 포함 섹션이 비어 있거나 생략된 경우 로드되고 연결된 PDB 파일이 있는 모든 어셈블리가 포함됩니다. 어셈블리나 멤버가 제외 섹션의 절과 일치하면 코드 적용 범위에서 제외됩니다. 제외 섹션은 포함 섹션보다 우선합니다. 어셈블리가 포함 및 제외 모두에 나열되면 코드 적용 범위에 포함되지 않습니다.
System.Diagnostics.CodeAnalytic 네임스페이스에 있는 [ExcludeFromCodeCoverage] 특성을 적용하여 코드 검사에서 메서드나 전체 클래스를 무시할 수 있습니다.
.Net( .Net Framework 아님)의 경우 이 특성을 어셈블리 수준에서 적용할 수 있습니다.
.Net Framework의 경우 유사한 기능을 보려면 위의 FCCExcludeFromCodeCoverage를 참조하세요.
다른 유형의 코드를 무시하려면 다음을 수행하십시오.
또한 Coverlet/OpenCover의 경우 'ExcludeByAttribute' 목록에 추가하여 'ExcludeByAttribute' 목록(정규화된 또는 비규격)에 추가하여 추가 속성을 무시할 수도 있습니다. MS 코드 적용 범위의 경우 'AttributesExclude' 목록에 추가하세요. 이것은 정규식 일치를 사용합니다.
FCC 출력은 기본적으로 각 테스트 프로젝트의 디버그 폴더 내에 있습니다. 원하는 경우 내부적으로 출력되고 FCC에서 사용되는 파일을 포함할 폴더를 지정할 수 있습니다. 아래 두 방법 모두 첫 번째 테스트 프로젝트 파일이 포함된 디렉터리의 상위 디렉터리에서 .sln 파일이 포함된 디렉터리를 찾습니다. 그러한 솔루션 디렉터리가 발견되면 논리가 적용됩니다.
솔루션 디렉터리에 fcc-output 하위 디렉터리가 있으면 자동으로 사용됩니다.
또는 옵션에 FCCSolutionOutputDirectoryName을 제공하면 필요한 경우 디렉터리가 생성되어 사용됩니다.
이 프로젝트에 기여하고 싶다면 기여 지침을 확인하세요.
이 프로젝트를 직접 복제하고 빌드하려면 이 프로젝트에서 사용되는 일부 기능을 활성화하는 Visual Studio용 Extensibility Essentials 확장을 설치해야 합니다.
아파치 2.0
침대보
오픈커버
보고서 생성기
공급자 | 유형 | 링크 |
---|---|---|
페이팔 | 한 번 | |
리베라페이 | 반복 |