我正在使用Visual Studio 2015社区版,我知道它可以选择创建单元测试来测试代码,但我没有看到测试代码覆盖率的选项,所以我想知道是否Visual Studio有此选项,或者我必须使用第三方插件。
如果我必须使用第三方解决方案,那会是一个不错的选择吗?
答案 0 :(得分:65)
只有Visual Studio 2015 Enterprise内置了代码覆盖率。有关详细信息,请参阅the feature matrix。
您可以在Visual Studio中使用OpenCover.UI extension进行代码覆盖率检查。它支持MSTest,nUnit和xUnit。
可以从here(release notes)下载新版本。
答案 1 :(得分:40)
如果您使用的是Visual Studio 2017并遇到此问题,则可以考虑使用AxoCover。它是一个免费的VS扩展,集成了OpenCover,但支持VS2017(它似乎也在积极开发中。+ 1)。
答案 2 :(得分:2)
对于在Visual Studio Community 2019中寻求简单解决方案的任何人来说,Fine Code Coverage很简单,但是效果很好。
它不能给出准确覆盖率的准确数字,但是会告诉您绿色/红色沟槽覆盖了哪些行。
答案 3 :(得分:2)
如前所述,您可以使用 Fine Code Coverage 来可视化 coverlet output。如果您创建一个 xunit test project
(dotnet new xunit
),您会发现 csproj
文件中已经存在 Coverlet 引用,因为 Coverlet
是每个 .NET Core 的默认覆盖工具,并且 >= .NET 5 应用程序。
Microsoft 有一个使用 ReportGenerator 的示例,可将 Coverlet、OpenCover、dotCover、Visual Studio、NCover、Cobertura、JaCoCo、Clover、gcov 或 lcov 生成的覆盖报告转换为各种格式的人类可读报告。
示例报告:
虽然本文将 C# 和 xUnit 作为测试框架,但 MSTest 和 NUnit 也可以使用。
指南:
如果您想要 .xml 文件中的代码覆盖率,您可以运行以下任何命令:
dotnet test --collect:"XPlat Code Coverage"
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura