Unit testing VisualStudio是否有单元测试的代码覆盖率?

Unit testing VisualStudio是否有单元测试的代码覆盖率?,unit-testing,visual-studio-2015,Unit Testing,Visual Studio 2015,我正在使用VisualStudio2015社区版,我知道它可以选择创建单元测试来测试代码,但我看不到测试代码覆盖率的选项,所以我想知道Visual Studio是否有此选项,或者我是否必须使用第三方插件 如果我必须使用第三方解决方案,这是一个好的选择吗?只有Visual Studio 2015 Enterprise内置了代码覆盖率。有关详细信息,请参阅 您可以在VisualStudio中使用for代码覆盖率检查。它支持MSTest、nUnit和xUnit 新版本可以从()下载。托尼的答案非常有用

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


如果我必须使用第三方解决方案,这是一个好的选择吗?

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

您可以在VisualStudio中使用for代码覆盖率检查。它支持MSTest、nUnit和xUnit


新版本可以从()下载。

托尼的答案非常有用,但我认为这是一个测试覆盖率评估的快速入门(就像我一样)

如前所述,VisualStudioProfessional和社区版没有内置的测试覆盖率支持。然而,它很容易获得。我将在Visual Studion 2015 Professional中编写用于NUnit测试的分步配置

  • 使用NuGet接口安装

  • 得到。这可以通过使用工具->扩展和更新直接从Visual Studio安装

  • 通过访问工具->选项->OpenCover.UI选项->常规,配置OpenCoverUI以使用适当的可执行文件

  • NUnit路径:必须指向'NUnit-console.exe文件。这只能在NUnit 2.xx版本中找到,该版本可从下载

    OpenCover路径:这应该指向已安装的软件包,通常是
    \packages\OpenCover.4.6.519\tools\OpenCover.Console.exe

  • 安装ReportGenerator NUGet软件包

  • 从OpenCover菜单访问OpenCover测试资源管理器。尝试从那里发现测试。如果失败,请检查输出窗口以了解更多详细信息

  • 有关更多详细信息,请查看OpenCover结果(在OpenCover菜单中)。它将在基于树的视图中输出代码覆盖率等详细信息。您还可以突出显示已覆盖或未覆盖的代码(左上角的小图标)

  • 注意:如上所述,OpenCoverUI不支持NUnit(3.xx)的最新主要版本。但是,如果测试中没有使用任何特定于此版本的内容,则无论是否安装了NUnit 3.xx版本,此版本都不会出现任何问题


    这包括快速启动。正如评论中已经提到的,对于更高级的配置和自动化检查,

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


    对于在Visual Studio Community 2019中寻找简单解决方案的人来说,这很简单,但效果很好


    它不能给出精确覆盖范围的准确数字,但它会告诉哪些线路被绿色/红色排水沟覆盖。

    如前所述,您可以使用该可视化。如果您创建一个
    xunit测试项目
    dotnet new xunit
    ),您将在
    csproj
    文件中找到coverlet引用,因为
    coverlet
    是每个.NET Core和>=.NET 5应用程序的默认覆盖工具

    微软有一个例子,使用它将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
    

    新的扩展版本现在在VS Gallery上提供,OpenCover UI似乎不支持NUnit 3opencover.UI(与VS集成)有非常混乱的报告(结果窗口),根本无法使用。直接转到opencover:“最新版本-2016”。不适用于现代视觉研究值得注意的是,此(当前)仅支持.NET的桌面版本-即,在撰写本文时,NET Core似乎不受支持。2017年12月12日,仍然不支持.NET Core/Xamarinyup。没有.net内核。安装后才意识到:(2018年8月至2019年3月,AxoCover也仅通过xUnit 2.2(已经超过两年)支持up),目前还没有支持xUnit 2.3或2.4的计划。如果您希望运行xUnit测试,请不要费心。现在是2020年6月,遗憾的是,上述评论仍然成立。该扩展在VS 2019社区上不起作用。这是一个多么令人遗憾的问题啊pity@nicolascolman是的,但是。这是一个很好的提示。然而,它只适用于.NETCore。上面的评论声称这只适用于.NETCoreWorks与.NET Core一起使用,但我将其与.NET Framework Winforms项目一起使用。没问题。不确定自那篇评论发表后是否进行了更新,但对于现在阅读的任何人来说,它似乎工作得很好。