Leistungsstarke Visualisierung der Codeabdeckung
ReportGenerator konvertiert von coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov oder lcov generierte Abdeckungsberichte in für Menschen lesbare Berichte in verschiedenen Formaten.
Die Berichte zeigen die Abdeckungsquoten an und visualisieren außerdem, welche Zeilen Ihres Quellcodes abgedeckt wurden.
ReportGenerator unterstützt das Zusammenführen mehrerer Coverage-Dateien in einem einzigen Bericht.
Durchsuchen Sie den Beispiel-HTML-Bericht
ReportGenerator ist ein Befehlszeilentool, das mit vollständigem .NET Framework und .NET Core funktioniert.
Nutzen Sie für den schnellen Einstieg das Online-Konfigurationstool.
Paket | Plattformen | Installation/Nutzung |
---|---|---|
Berichtsgenerator | .NET Core >=8.0 .NET Framework 4.7 | Verwenden Sie dieses Paket, wenn Ihr Projekt auf .NET Framework oder .NET Core basiert und Sie ReportGenerator über die Befehlszeile oder ein Build-Skript verwenden möchten. Verwendung dotnet $(UserProfile).nugetpackagesreportgeneratorxyztoolsnet8.0ReportGenerator.dll [options] $(UserProfile).nugetpackagesreportgeneratorxyztoolsnet8.0ReportGenerator.exe [options] $(UserProfile).nugetpackagesreportgeneratorxyztoolsnet47ReportGenerator.exe [options] |
dotnet-reportgenerator-globaltool | .NET Core >=8.0 | Verwenden Sie dieses Paket, wenn Ihr Projekt auf .NET Core basiert und Sie ReportGenerator als (globales) „DotnetTool“ verwenden möchten. Installation 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 Verwendung reportgenerator [options] toolsreportgenerator.exe [options] dotnet reportgenerator [options] |
ReportGenerator.Core | .NET-Standard 2.0 | Verwenden Sie dieses Paket, wenn Sie ein benutzerdefiniertes Plugin für ReportGenerator schreiben oder ReportGenerator innerhalb Ihrer Codebasis aufrufen/ausführen möchten. Plugin-Entwicklung Benutzerdefinierte Berichte Benutzerdefinierter Verlaufsspeicher |
Azure DevOps-Erweiterung | .NET Core >=8.0 | Fügen Sie die Azure DevOps-Erweiterung zu Ihrer Build-Pipeline hinzu. Erfahren Sie mehr |
GitHub-Aktionen | .NET Core >=8.0 | Fügen Sie die GitHub-Aktion zu Ihrer Build-Pipeline hinzu. Erfahren Sie mehr |
Nutzen Sie für den schnellen Einstieg das Online-Konfigurationstool.
Die erweiterten Einstellungen sind im Wiki dokumentiert.
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.*"
Alle oben genannten Parameter können auch in einer .netconfig-Datei im Abschnitt [ReportGenerator]
gespeichert werden. Beispiele:
[ ReportGenerator ]
reports = coverage.xml
targetdir = " C: \ report "
reporttypes = Latex,HtmlSummary
assemblyfilters = +Test,-Test
classfilters = +Test2,-Test2
Alle Pluraloptionen können auch als mehrere Singulareinträge angegeben werden, wie zum Beispiel:
[ 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
Das Hinzufügen/Entfernen von Werten ist mit der dotnet-config-CLI einfach:
# 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
Natürlich ist es genauso trivial, die .netconfig
Datei einfach manuell zu bearbeiten.
Es gibt auch eine MSBuild-Aufgabe:
<? 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 >
Die MSBuild-Aufgabenparameter können bei Verwendung durch .netconfig
ergänzt werden. Das bedeutet, dass Parameter weggelassen werden können, wenn sie über .netconfig
bereitgestellt werden. Dies ist nützlich, wenn feste Einstellungen über mehrere Projekte hinweg in einer Lösung wiederverwendet werden, wobei der MSBuild-Aufgabe nur die dynamischen Werte für das aktuelle Projekt bereitgestellt werden:
Angesichts der folgenden .netconfig
:
[ ReportGenerator ]
reporttypes = Html ; Latex
targetdirectory = report
historydirectory = history
assemblyfilters = +Include ; -Excluded
verbosityLevel = Verbose
Das obige Ziel könnte wie folgt vereinfacht werden:
< Target Name = " Coverage " >
< ItemGroup >
< CoverageFiles Include = " OpenCover.xml " />
</ ItemGroup >
< ReportGenerator ProjectDirectory = " $(MSBuildProjectDirectory) "
ReportFiles = " @(CoverageFiles) "
Plugins = " CustomReports.dll " />
</ Target >
ReportGenerator unterstützt mehrere Eingabe- und Ausgabeformate.
Das Wiki erklärt die verschiedenen Ausgabeformate oder Sie können Beispielberichte aller unterstützten Ausgabeformate herunterladen.
Wenn Sie ein benutzerdefiniertes Format benötigen, können Sie ein Plugin erstellen.
Eingabeformate | Ausgabeformate |
---|---|
|
|
Die Screenshots zeigen zwei Ausschnitte der generierten Berichte: