تصور قوي لتغطية الكود
يقوم ReportGenerator بتحويل تقارير التغطية التي تم إنشاؤها بواسطة Coverlet أو OpenCover أو dotCover أو Visual Studio أو NCover أو Cobertura أو JaCoCo أو Clover أو gcov أو lcov إلى تقارير يمكن قراءتها بواسطة الإنسان بتنسيقات مختلفة.
تعرض التقارير حصص التغطية وتوضح أيضًا أسطر كود المصدر الخاص بك التي تمت تغطيتها.
يدعم ReportGenerator دمج عدة ملفات تغطية في تقرير واحد.
تصفح مثال لتقرير HTML
ReportGenerator هي أداة سطر أوامر تعمل مع .NET Framework و.NET Core.
استخدم أداة التكوين عبر الإنترنت للبدء بسرعة.
طَرد | المنصات | التثبيت/الاستخدام |
---|---|---|
ReportGenerator | .نت كور>=8.0 صافي الإطار 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 | .نت كور>=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 | نت ستاندارد 2.0 | استخدم هذه الحزمة إذا كنت تريد كتابة مكون إضافي مخصص لـ ReportGenerator أو إذا كنت تريد استدعاء/تنفيذ ReportGenerator ضمن قاعدة التعليمات البرمجية الخاصة بك. تطوير البرنامج المساعد التقارير المخصصة تخزين التاريخ المخصص |
ملحق Azure DevOps | .نت كور>=8.0 | أضف ملحق Azure DevOps إلى مسار الإنشاء الخاص بك. يتعلم أكثر |
إجراءات جيثب | .نت كور>=8.0 | أضف إجراء GitHub إلى خط أنابيب الإنشاء الخاص بك. يتعلم أكثر |
استخدم أداة التكوين عبر الإنترنت للبدء بسرعة.
تم توثيق الإعدادات الأكثر تقدمًا في الويكي.
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.*"
يمكن أيضًا الاحتفاظ بجميع المعلمات المذكورة أعلاه في ملف .netconfig، ضمن قسم [ReportGenerator]
. أمثلة:
[ 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 تنسيقات المخرجات المختلفة أو يمكنك تنزيل نماذج تقارير لجميع تنسيقات المخرجات المدعومة.
إذا كنت بحاجة إلى تنسيق مخصص، يمكنك إنشاء مكون إضافي.
تنسيقات الإدخال | تنسيقات الإخراج |
---|---|
|
|
تعرض لقطات الشاشة مقتطفين من التقارير التي تم إنشاؤها: