Potente visualización de cobertura de código
ReportGenerator convierte informes de cobertura generados por coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov o lcov en informes legibles por humanos en varios formatos.
Los informes muestran las cuotas de cobertura y también visualizan qué líneas de su código fuente se han cubierto.
ReportGenerator admite la combinación de varios archivos de cobertura en un solo informe.
Explorar informe HTML de ejemplo
ReportGenerator es una herramienta de línea de comandos que funciona con .NET Framework y .NET Core completos.
Utilice la herramienta de configuración en línea para comenzar rápidamente.
Paquete | Plataformas | Instalación/Uso |
---|---|---|
Generador de informes | .NET Núcleo >=8.0 Marco .NET 4.7 | Utilice este paquete si su proyecto se basa en .NET Framework o .NET Core y desea utilizar ReportGenerator a través de la línea de comandos o un script de compilación. Uso dotnet $(UserProfile).nugetpackagesreportgeneratorxyztoolsnet8.0ReportGenerator.dll [options] $(UserProfile).nugetpackagesreportgeneratorxyztoolsnet8.0ReportGenerator.exe [options] $(UserProfile).nugetpackagesreportgeneratorxyztoolsnet47ReportGenerator.exe [options] |
dotnet-reportgenerator-globaltool | .NET Núcleo >=8.0 | Utilice este paquete si su proyecto se basa en .NET Core y desea utilizar ReportGenerator como una 'DotnetTool' (global). Instalación 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 Uso reportgenerator [options] toolsreportgenerator.exe [options] dotnet reportgenerator [options] |
ReportGenerator.Core | Estándar .NET 2.0 | Utilice este paquete si desea escribir un complemento personalizado para ReportGenerator o si desea llamar/ejecutar ReportGenerator dentro de su código base. Desarrollo de complementos Informes personalizados Almacenamiento de historial personalizado |
Extensión de Azure DevOps | .NET Núcleo >=8.0 | Agregue la extensión Azure DevOps a su canal de compilación. Más información |
Acciones de GitHub | .NET Núcleo >=8.0 | Agregue la acción de GitHub a su canal de compilación. Más información |
Utilice la herramienta de configuración en línea para comenzar rápidamente.
Las configuraciones más avanzadas están documentadas en la wiki.
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.*"
Todos los parámetros anteriores también se pueden conservar en un archivo .netconfig, en la sección [ReportGenerator]
. Ejemplos:
[ ReportGenerator ]
reports = coverage.xml
targetdir = " C: \ report "
reporttypes = Latex,HtmlSummary
assemblyfilters = +Test,-Test
classfilters = +Test2,-Test2
Todas las opciones en plural también se pueden especificar como entradas singulares múltiples, como:
[ 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
Agregar/eliminar valores es trivial usando la CLI dotnet-config:
# 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
Por supuesto, es igualmente trivial editar el archivo .netconfig
a mano.
También existe una tarea de 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 >
Los parámetros de la tarea MSBuild se pueden complementar con .netconfig
, si se usa. Eso significa que los parámetros se pueden omitir si se proporcionan a través de .netconfig
, lo cual es útil cuando se reutilizan configuraciones fijas en múltiples proyectos en una solución, donde la tarea de MSBuild solo recibe los valores dinámicos para el proyecto actual:
Dado el siguiente .netconfig
:
[ ReportGenerator ]
reporttypes = Html ; Latex
targetdirectory = report
historydirectory = history
assemblyfilters = +Include ; -Excluded
verbosityLevel = Verbose
El objetivo anterior podría simplificarse como:
< Target Name = " Coverage " >
< ItemGroup >
< CoverageFiles Include = " OpenCover.xml " />
</ ItemGroup >
< ReportGenerator ProjectDirectory = " $(MSBuildProjectDirectory) "
ReportFiles = " @(CoverageFiles) "
Plugins = " CustomReports.dll " />
</ Target >
ReportGenerator admite varios formatos de entrada y salida.
La wiki explica los diferentes formatos de salida o puede descargar informes de muestra de todos los formatos de salida admitidos.
Si necesita un formato personalizado, puede crear un complemento.
Formatos de entrada | Formatos de salida |
---|---|
|
|
Las capturas de pantalla muestran dos fragmentos de los informes generados: