[英]How to generate line coverage report with vstest.console.exe?
当我使用参数 vstest.console.exe App.Tests.dll /collect:"Code Coverage" /Logger:html /EnableCodeCoverage App.dll 运行 vstest.console.exe 时,它只会在结果 html 中生成测试执行报告。
是否也可以使用此工具生成线路覆盖率报告,还是我需要更多工具? 当我在 C# 中搜索线覆盖率时,它会将我带到https://learn.microsoft.com/en-us/visualstudio/test/using-code-coverage-to-determine-how-much-code-is- being-tested?view=vs-2019 ,这个建议vstest.console.exe,但它不会生成行覆盖。
这篇文章对我帮助很大。 尽管如此,我正在为后代复制这里的步骤。 我通过模拟使用以下工具找到了我的解决方案。
我安装了 package opencover ,版本 4.7.1221 package 附带了我们将用于生成覆盖信息的命令行 exe C:\Users\username\.nuget\packages\opencover\4.7.1221\tools\OpenCover.console.exe
我安装了 package ReportGenerator 5.1.6 版。 package 附带命令行 exe,我们将使用它生成可读的 HTML 报告,报告由OpenCover.console.exe
工具生成的代码覆盖率信息C:\Users\username\.nuget\packages\reportgenerator\5.1.6\tools.net47\ReportGenerator.exe
set VSTEST_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe
set OPENCOVER_PATH=C:\Users\%USERNAME%\.nuget\packages\opencover\4.7.1221\tools\OpenCover.Console.exe
set REPORTGEN_PATH=C:\Users\%USERNAME%\.nuget\packages\reportgenerator\5.1.6\tools\net47\ReportGenerator.exe
set COVERAGE_RESULTS_FILE=C:\work\code-coverage\mycodecoverage.xml
set COVERAGE_REPORT_DIR=C:\work\code-coverage\myreport
%OPENCOVER_PATH% -target:"%VSTEST_PATH%" -targetargs:C:\work\WebApp48\WebApplicationGenic\WebApplication1.Tests\bin\Debug\WebApplication1.Tests.dll -filter:"+[WebApplication1]*" -output:%COVERAGE_RESULTS_FILE%
%REPORTGEN_PATH% -reports:%COVERAGE_RESULTS_FILE% -targetdir:%COVERAGE_REPORT_DIR%
%REPORTGEN_PATH% -reports:%COVERAGE_RESULTS_FILE% -targetdir:%COVERAGE_REPORT_DIR%
单击index.html中的ValuesController
行项目以查看详细的覆盖信息。 我们可以看到没有被测试的代码行。
测试覆盖率仅在 Visual Studio 的企业许可证中受支持。 您可以使用一些 3-rd 方工具:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.