ReportGenerator converts XML reports generated by OpenCover, dotCover, Visual Studio, NCover or Cobertura into human readable reports in various formats.
The reports do not only show the coverage quota, but also include the source code and visualize which lines have been covered.
ReportGenerator supports merging several reports into one. It is also possible to pass one XML file containing several reports to ReportGenerator (e.g. a build log file).
- HTML, HTMLSummary, HTMLInline, HTMLChart, MHTML
- XML, XMLSummary
- Latex, LatexSummary
- Custom reports
- OpenCover (Nuget)
OpenCover format is also supported by coverlet and altcover
- dotCover (Nuget, /ReportType=DetailedXML)
- Visual Studio (vstest.console.exe, CodeCoverage.exe)
- NCover (tested version 1.5.8, other versions may not work)
- Mono (mprof-report)
Additional information about ReportGenerator can be found under Resources.
Badges in SVG and PNG format can be generated if
-reporttypes:Badges is used:
ReportGenerator is a commandline tool which works with full .NET Framework and .NET Core.
Use the online configuration tool to get started quickly.
ReportGenerator requires the following parameters:
Parameters: ["]-reports:<report>[;<report>][;<report>]["] ["]-targetdir:<target directory>["] [["]-reporttypes:<Html|HtmlSummary|...>[;<Html|HtmlSummary|...>]["]] [["]-historydir:<history directory>["]] [["]-assemblyfilters:<(+|-)filter>[;<(+|-)filter>][;<(+|-)filter>]["]] [["]-classfilters:<(+|-)filter>[;<(+|-)filter>][;<(+|-)filter>]["]] [["]-filefilters:<(+|-)filter>[;<(+|-)filter>][;<(+|-)filter>]["]] [["]-verbosity:<Verbose|Info|Warning|Error|Off>["]] [["]-tag:<tag>["]] Explanations: Reports: The coverage reports that should be parsed (separated by semicolon). Wildcards are allowed. Targetdirectory: The directory where the generated report should be saved. Reporttypes: The output formats and scope (separated by semicolon). Values: Badges, Cobertura, CsvSummary, Html, HtmlChart, HtmlSummary, Latex, LatexSummary, MHtml, PngChart, TextSummary, Xml, XmlSummary History directory: Optional directory for storing persistent coverage information. Can be used in future reports to show coverage evolution. 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. Exclusion filters take precedence over inclusion filters. Wildcards are allowed. Verbosity: The verbosity level of the log messages. Values: Verbose, Info, Warning, Error, Off Tag: Optional tag or build version. Default values: -reporttypes:Html -assemblyfilters:+* -classfilters:+* -filefilters:+* -verbosity:Verbose Examples: "-reports:coverage.xml" "-targetdir:C:\report" "-reports:target\*\*.xml" "-targetdir:C:\report" -reporttypes:Latex;HtmlSummary -tag:v1.4.5 "-reports:coverage1.xml;coverage2.xml" "-targetdir:report" "-reports:coverage.xml" "-targetdir:C:\report" "-assemblyfilters:+Included;-Excluded.*"
|ReportGenerator||.NET Core 2.0
.NET Framework 4.7
|Use this package if your project is based on .NET Framework or .NET Core and you want to use ReportGenerator via the command line or a build script.
|dotnet-reportgenerator-cli||.NET Core 2.0||Use this package if your project is based on .NET Core and you want to use ReportGenerator as a 'DotnetCliTool'.
|dotnet-reportgenerator-globaltool||.NET Core 2.1||Use this package if your project is based on .NET Core and you want to use ReportGenerator as a (global) 'DotnetTool'.
|ReportGenerator.Core||.NET Standard 2.0||Use this package if you want to write a custom plugin for ReportGenerator or if you want to call/execute ReportGenerator within your code base.
Custom history storage
A MSBuild task also exists:
<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Coverage" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <UsingTask TaskName="ReportGenerator" AssemblyFile="ReportGenerator.exe" /> <ItemGroup> <CoverageFiles Include="OpenCover.xml" /> </ItemGroup> <Target Name="Coverage"> <ReportGenerator ReportFiles="@(CoverageFiles)" TargetDirectory="report" ReportTypes="Html;Latex" HistoryDirectory="history" AssemblyFilters="+Include;-Excluded" VerbosityLevel="Verbose" /> </Target> </Project>