강력한 코드 범위 시각화
ReportGenerator는 Coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov 또는 lcov에서 생성된 적용 범위 보고서를 다양한 형식의 사람이 읽을 수 있는 보고서로 변환합니다.
보고서는 적용 범위 할당량을 표시하고 소스 코드의 어느 라인이 적용되었는지 시각화합니다.
ReportGenerator는 여러 적용 범위 파일을 단일 보고서로 병합하는 것을 지원합니다.
예제 HTML 보고서 찾아보기
ReportGenerator 는 전체 .NET Framework 및 .NET Core에서 작동하는 명령줄 도구입니다.
빠르게 시작하려면 온라인 구성 도구를 사용하세요.
패키지 | 플랫폼 | 설치/사용 |
---|---|---|
보고서 생성기 | .NET 코어 >=8.0 .NET 프레임워크 4.7 | 프로젝트가 .NET Framework 또는 .NET Core를 기반으로 하고 명령줄이나 빌드 스크립트를 통해 ReportGenerator를 사용하려는 경우 이 패키지를 사용하세요. 용법 dotnet $(UserProfile).nugetpackagesreportgeneratorxyztoolsnet8.0ReportGenerator.dll [options] $(UserProfile).nugetpackagesreportgeneratorxyztoolsnet8.0ReportGenerator.exe [options] $(UserProfile).nugetpackagesreportgeneratorxyztoolsnet47ReportGenerator.exe [options] |
dotnet-reportgenerator-globaltool | .NET 코어 >=8.0 | 프로젝트가 .NET Core를 기반으로 하고 ReportGenerator를 (전역) 'DotnetTool'로 사용하려는 경우 이 패키지를 사용하세요. 설치 dotnet tool install -g dotnet-reportgenerator-globaltool dotnet tool install dotnet-reportgenerator-globaltool --tool-path tools dotnet new tool-manifest dotnet tool install dotnet-reportgenerator-globaltool 용법 reportgenerator [options] toolsreportgenerator.exe [options] dotnet reportgenerator [options] |
ReportGenerator.Core | .NET 표준 2.0 | ReportGenerator 용 사용자 정의 플러그인을 작성하거나 코드 베이스 내에서 ReportGenerator를 호출/실행하려는 경우 이 패키지를 사용하십시오. 플러그인 개발 맞춤 보고서 맞춤 기록 저장 |
Azure DevOps 확장 | .NET 코어 >=8.0 | 빌드 파이프라인에 Azure DevOps 확장을 추가합니다. 자세히 알아보기 |
GitHub 작업 | .NET 코어 >=8.0 | 빌드 파이프라인에 GitHub Action을 추가합니다. 자세히 알아보기 |
빠르게 시작하려면 온라인 구성 도구를 사용하세요.
더 고급 설정은 위키에 문서화되어 있습니다.
Parameters:
["]-reports:<report>[;<report>][;<report>]["]
["]-targetdir:<target directory>["]
[["]-reporttypes:<Html|HtmlSummary|...>[;<Html|HtmlSummary|...>]["]]
[["]-sourcedirs:<directory>[;<directory>][;<directory>]["]]
[["]-historydir:<history directory>["]]
[["]-plugins:<plugin>[;<plugin>][;<plugin>]["]]
[["]-assemblyfilters:<(+|-)filter>[;<(+|-)filter>][;<(+|-)filter>]["]]
[["]-classfilters:<(+|-)filter>[;<(+|-)filter>][;<(+|-)filter>]["]]
[["]-filefilters:<(+|-)filter>[;<(+|-)filter>][;<(+|-)filter>]["]]
[["]-riskhotspotassemblyfilters:<(+|-)filter>[;<(+|-)filter>][;<(+|-)filter>]["]]
[["]-riskhotspotclassfilters:<(+|-)filter>[;<(+|-)filter>][;<(+|-)filter>]["]]
[["]-verbosity:<Verbose|Info|Warning|Error|Off>["]]
[["]-title:<title>["]]
[["]-tag:<tag>["]]
[["]-license:<license>["]]
Explanations:
Reports: The coverage reports that should be parsed (separated by semicolon).
Globbing is supported.
Target directory: The directory where the generated report should be saved.
Report types: The output formats and scope (separated by semicolon).
Values: Badges, Clover, Cobertura, CsvSummary,
MarkdownSummary, MarkdownAssembliesSummary, MarkdownSummaryGithub, MarkdownDeltaSummary
OpenCover
Html, Html_Light, Html_Dark, Html_BlueRed
HtmlChart, HtmlInline, HtmlSummary, Html_BlueRed_Summary
HtmlInline_AzurePipelines, HtmlInline_AzurePipelines_Light, HtmlInline_AzurePipelines_Dark
JsonSummary, CodeClimate, Latex, LatexSummary, lcov, MHtml, SvgChart, SonarQube, TeamCitySummary
TextSummary, TextDeltaSummary
Xml, XmlSummary
Source directories: Optional directories which contain the corresponding source code (separated by semicolon).
The source directories are used if coverage report contains classes without path information.
Globbing is not supported.
History directory: Optional directory for storing persistent coverage information.
Can be used in future reports to show coverage evolution.
Plugins: Optional plugin files for custom reports or custom history storage (separated by semicolon).
Assembly filters: Optional list of assemblies that should be included or excluded in the report.
Class filters: Optional list of classes that should be included or excluded in the report.
File filters: Optional list of files that should be included or excluded in the report.
Risk hotspot assembly filters: Optional list of assemblies that should be included or excluded in the risk hotspots.
Risk hotspot class filters: Optional list of classes that should be included or excluded in the risk hotspots.
Exclusion filters take precedence over inclusion filters.
Wildcards are allowed.
Verbosity: The verbosity level of the log messages.
Values: Verbose, Info, Warning, Error, Off
Title: Optional title.
Tag: Optional tag or build version.
License: Optional license for PRO version. Get your license here: https://reportgenerator.io/pro
License can also be supplied via 'REPORTGENERATOR_LICENSE' environment variable.
Default values:
-reporttypes:Html
-assemblyfilters:+*
-classfilters:+*
-filefilters:+*
-riskhotspotassemblyfilters:+*
-riskhotspotclassfilters:+*
-verbosity:Info
Examples:
"-reports:coverage.xml" "-targetdir:C:report"
"-reports:target**.xml" "-targetdir:C:report" -reporttypes:Latex;HtmlSummary -title:IntegrationTest -tag:v1.4.5
"-reports:coverage1.xml;coverage2.xml" "-targetdir:report" "-sourcedirs:C:MyProject" -plugins:CustomReports.dll
"-reports:coverage.xml" "-targetdir:C:report" "-assemblyfilters:+Included;-Excluded.*"
위의 모든 매개변수는 [ReportGenerator]
섹션 아래의 .netconfig 파일에 유지될 수도 있습니다. 예:
[ ReportGenerator ]
reports = coverage.xml
targetdir = " C: \ report "
reporttypes = Latex,HtmlSummary
assemblyfilters = +Test,-Test
classfilters = +Test2,-Test2
모든 복수형 옵션은 다음과 같이 여러 개의 단수 항목으로 지정할 수도 있습니다.
[ ReportGenerator ]
report = coverage1.xml
report = coverage2.xml
reporttype = Latex
reporttype = HtmlSummary
assemblyfilter = +Test
assemblyfilter = -Test
classfilter = +Test2
classfilter = -Test2
filefilter = +cs
filefilter = -vb
riskhotspotassemblyfilter = +Test
riskhotspotassemblyfilter = -Test
riskhotspotclassfilter = +Test2
riskhotspotclassfilter = -Test2
sourcedir = src
sourcedir = test
dotnet-config CLI를 사용하면 값을 추가/제거하는 것이 간단합니다.
# set a single-valued variable
dotnet config reportgenerator.reporttypes Latex ; HtmlSummary
# add to multi-valued variable
dotnet config --add reportgenerator.report coverage3.xml
# clear all multi-valued entries for a variable
dotnet config --unset-all reportgenerator.assemblyfilter
물론 .netconfig
파일을 직접 편집하는 것도 마찬가지로 간단합니다.
MSBuild 작업도 존재합니다.
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< Project DefaultTargets = " Coverage " xmlns = " http://schemas.microsoft.com/developer/msbuild/2003 " ToolsVersion = " 4.0 " >
< ItemGroup >
< PackageReference Include = " ReportGenerator " Version = " x.y.z " />
</ ItemGroup >
< Target Name = " Coverage " >
< ItemGroup >
< CoverageFiles Include = " OpenCover.xml " />
</ ItemGroup >
< ReportGenerator ProjectDirectory = " $(MSBuildProjectDirectory) " ReportFiles = " @(CoverageFiles) " TargetDirectory = " report " ReportTypes = " Html;Latex " HistoryDirectory = " history " Plugins = " CustomReports.dll " AssemblyFilters = " +Include;-Excluded " VerbosityLevel = " Verbose " />
</ Target >
</ Project >
MSBuild 작업 매개 변수는 사용되는 경우 .netconfig
로 보완될 수 있습니다. 즉, .netconfig
통해 제공되는 경우 매개 변수를 생략할 수 있습니다. 이는 솔루션의 여러 프로젝트에서 고정 설정을 재사용할 때 유용합니다. 여기서 MSBuild 작업에는 현재 프로젝트에 대한 동적 값만 제공됩니다.
다음 .netconfig
고려하면 다음과 같습니다.
[ ReportGenerator ]
reporttypes = Html ; Latex
targetdirectory = report
historydirectory = history
assemblyfilters = +Include ; -Excluded
verbosityLevel = Verbose
위의 목표는 다음과 같이 단순화될 수 있습니다.
< Target Name = " Coverage " >
< ItemGroup >
< CoverageFiles Include = " OpenCover.xml " />
</ ItemGroup >
< ReportGenerator ProjectDirectory = " $(MSBuildProjectDirectory) "
ReportFiles = " @(CoverageFiles) "
Plugins = " CustomReports.dll " />
</ Target >
ReportGenerator는 다양한 입력 및 출력 형식을 지원합니다.
Wiki에서는 다양한 출력 형식을 설명하거나 지원되는 모든 출력 형식의 샘플 보고서를 다운로드할 수 있습니다.
사용자 정의 형식이 필요한 경우 플러그인을 만들 수 있습니다.
입력 형식 | 출력 형식 |
---|---|
|
|
스크린샷은 생성된 보고서의 두 조각을 보여줍니다.