Unit testing VisualStudio是否有单元测试的代码覆盖率?
我正在使用VisualStudio2015社区版,我知道它可以选择创建单元测试来测试代码,但我看不到测试代码覆盖率的选项,所以我想知道Visual Studio是否有此选项,或者我是否必须使用第三方插件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 新版本可以从()下载。托尼的答案非常有用
如果我必须使用第三方解决方案,这是一个好的选择吗?只有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项目一起使用。没问题。不确定自那篇评论发表后是否进行了更新,但对于现在阅读的任何人来说,它似乎工作得很好。