Visualisasi cakupan kode yang kuat
ReportGenerator mengubah laporan liputan yang dihasilkan oleh coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov, atau lcov menjadi laporan yang dapat dibaca manusia dalam berbagai format.
Laporan tersebut menunjukkan kuota cakupan dan juga memvisualisasikan baris mana dari kode sumber Anda yang telah tercakup.
ReportGenerator mendukung penggabungan beberapa file cakupan menjadi satu laporan.
Telusuri contoh laporan HTML
ReportGenerator adalah alat baris perintah yang bekerja dengan .NET Framework dan .NET Core.
Gunakan alat konfigurasi online untuk memulai dengan cepat.
Kemasan | Platform | Instalasi/Penggunaan |
---|---|---|
Pembuat Laporan | .NET Inti >=8.0 .NET Kerangka 4.7 | Gunakan paket ini jika proyek Anda didasarkan pada .NET Framework atau .NET Core dan Anda ingin menggunakan ReportGenerator melalui baris perintah atau skrip build. Penggunaan dotnet $(UserProfile).nugetpackagesreportgeneratorxyztoolsnet8.0ReportGenerator.dll [options] $(UserProfile).nugetpackagesreportgeneratorxyztoolsnet8.0ReportGenerator.exe [options] $(UserProfile).nugetpackagesreportgeneratorxyztoolsnet47ReportGenerator.exe [options] |
dotnet-reportgenerator-globaltool | .NET Inti >=8.0 | Gunakan paket ini jika proyek Anda didasarkan pada .NET Core dan Anda ingin menggunakan ReportGenerator sebagai 'DotnetTool' (global). Instalasi 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 Penggunaan reportgenerator [options] toolsreportgenerator.exe [options] dotnet reportgenerator [options] |
ReportGenerator.Core | .NET Standar 2.0 | Gunakan paket ini jika Anda ingin menulis plugin khusus untuk ReportGenerator atau jika Anda ingin memanggil/mengeksekusi ReportGenerator dalam basis kode Anda. Pengembangan plugin Laporan khusus Penyimpanan riwayat khusus |
Ekstensi Azure DevOps | .NET Inti >=8.0 | Tambahkan ekstensi Azure DevOps ke alur build Anda. Pelajari lebih lanjut |
Tindakan GitHub | .NET Inti >=8.0 | Tambahkan Tindakan GitHub ke alur build Anda. Pelajari lebih lanjut |
Gunakan alat konfigurasi online untuk memulai dengan cepat.
Pengaturan lebih lanjut didokumentasikan di 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.*"
Semua parameter di atas juga dapat disimpan dalam file .netconfig, di bagian [ReportGenerator]
. Contoh:
[ ReportGenerator ]
reports = coverage.xml
targetdir = " C: \ report "
reporttypes = Latex,HtmlSummary
assemblyfilters = +Test,-Test
classfilters = +Test2,-Test2
Semua opsi jamak juga dapat ditentukan sebagai beberapa entri tunggal, seperti:
[ 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
Menambah/menghapus nilai adalah hal yang sepele menggunakan 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
Tentu saja mengedit file .netconfig
dengan tangan juga sama sepelenya.
Tugas MSBuild juga ada:
<? 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 >
Parameter tugas MSBuild dapat dilengkapi dengan .netconfig
, jika digunakan. Artinya, parameter dapat dihilangkan jika disediakan melalui .netconfig
, yang berguna saat menggunakan kembali pengaturan tetap di beberapa proyek dalam sebuah solusi, di mana tugas MSBuild hanya memberikan nilai dinamis untuk proyek saat ini:
Mengingat .netconfig
berikut:
[ ReportGenerator ]
reporttypes = Html ; Latex
targetdirectory = report
historydirectory = history
assemblyfilters = +Include ; -Excluded
verbosityLevel = Verbose
Target di atas dapat disederhanakan menjadi:
< Target Name = " Coverage " >
< ItemGroup >
< CoverageFiles Include = " OpenCover.xml " />
</ ItemGroup >
< ReportGenerator ProjectDirectory = " $(MSBuildProjectDirectory) "
ReportFiles = " @(CoverageFiles) "
Plugins = " CustomReports.dll " />
</ Target >
ReportGenerator mendukung beberapa format input dan output.
Wiki menjelaskan berbagai format keluaran atau Anda dapat mengunduh contoh laporan dari semua format keluaran yang didukung.
Jika Anda memerlukan format khusus, Anda dapat membuat plugin.
Format masukan | Format keluaran |
---|---|
|
|
Tangkapan layar menunjukkan dua cuplikan laporan yang dihasilkan: