我使用的是Visual Studio 2015社区版,我知道它可以创建用于测试代码的单元测试的选项,但是我看不到用于测试代码覆盖率的选项,因此我想知道Visual Studio是否具有此选项,或者如果我必须使用第三方插件。
如果我必须使用第三方解决方案,那将是一个好选择吗?
我使用的是Visual Studio 2015社区版,我知道它可以创建用于测试代码的单元测试的选项,但是我看不到用于测试代码覆盖率的选项,因此我想知道Visual Studio是否具有此选项,或者如果我必须使用第三方插件。
如果我必须使用第三方解决方案,那将是一个好选择吗?
Answers:
仅Visual Studio 2015 Enterprise具有内置的代码覆盖率。参见特征矩阵详细信息,。
您可以使用OpenCover.UI扩展在Visual Studio中进行代码覆盖率检查。它支持MSTest,nUnit和xUnit。
如果您使用的是Visual Studio 2017,并且遇到此问题,则可以考虑使用AxoCover。这是一个免费的VS扩展,它集成了OpenCover,但支持VS2017(它似乎也在积极开发中。+1)。
Toni
的答案非常有用,但我认为所有初学者都可以快速入门来测试覆盖率评估(就像我一样)。
如前所述,Visual Studio Professional和Community Edition不具有内置的测试覆盖范围支持。但是,可以很容易地获得它。我将编写用于Visual Studion 2015 Professional中的NUnit测试的分步配置。
使用NuGet界面安装OpenCover NUGet组件
获取OpenCoverUI扩展。可以使用“工具”->“扩展和更新”直接从Visual Studio安装此文件。
通过访问工具->选项-> OpenCover.UI选项->常规,将OpenCoverUI配置为使用适当的可执行文件
NUnit路径:必须指向`nunit-console.exe文件。只能在NUnit 2.xx版本中找到,可以从此处下载。
OpenCover路径:通常应指向已安装的软件包<solution path>\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe
安装ReportGenerator NUGet包
OpenCover Test Explorer
从OpenCover菜单访问。尝试从那里发现测试。如果失败,请查看输出窗口以获取更多详细信息。
查看OpenCover结果(在OpenCover菜单内)以获取更多详细信息。它将在基于树的视图中输出详细信息,例如代码覆盖率。您还可以突出显示未覆盖的代码(左上角的小图标)。
注意:如前所述,OpenCoverUI不支持NUnit的最新主要版本(3.xx)。但是,如果在测试中未使用任何特定于此版本的内容,则无论安装了NUnit 3.xx版本如何,它都不会出现问题。
这涵盖了快速入门。如注释中已经提到的,有关更高级的配置和自动化,请查看本文。
对于在Visual Studio Community 2019中寻求简单解决方案的任何人, Fine Code Coverage都很简单,但效果很好。
它不能给出准确覆盖范围的准确数字,但是会告诉您绿色/红色沟槽覆盖了哪些行。