Visual Studio是否具有单元测试的代码覆盖率?

时间:2015-09-03 07:38:46

标签: unit-testing visual-studio-2015

我正在使用Visual Studio 2015社区版,我知道它可以选择创建单元测试来测试代码,但我没有看到测试代码覆盖率的选项,所以我想知道是否Visual Studio有此选项,或者我必须使用第三方插件。

如果我必须使用第三方解决方案,那会是一个不错的选择吗?

4 个答案:

答案 0 :(得分:65)

只有Visual Studio 2015 Enterprise内置了代码覆盖率。有关详细信息,请参阅the feature matrix

您可以在Visual Studio中使用OpenCover.UI extension进行代码覆盖率检查。它支持MSTest,nUnit和xUnit。

可以从hererelease notes)下载新版本。

答案 1 :(得分:40)

如果您使用的是Visual Studio 2017并遇到此问题,则可以考虑使用AxoCover。它是一个免费的VS扩展,集成了OpenCover,但支持VS2017(它似乎也在积极开发中。+ 1)。

VS Extension page

https://github.com/axodox/AxoTools

答案 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 生成的覆盖报告转换为各种格式的人类可读报告。

示例报告:

enter image description here

虽然本文将 C# 和 xUnit 作为测试框架,但 MSTest 和 NUnit 也可以使用。

指南:

https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-code-coverage?tabs=windows#generate-reports

如果您想要 .xml 文件中的代码覆盖率,您可以运行以下任何命令:

dotnet test --collect:"XPlat Code Coverage"

dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura