VS2010代码覆盖率是否支持nUnit?

sti*_*k81 23 nunit mstest code-coverage visual-studio-2010

根据这种模式, VS2010 Premium和Ultimate有一个用于检查代码覆盖率的工具 - 以及一些其他测试工具.这也支持nUnit,还是只支持MS测试?

Be.*_*St. 26

Visual Studio 2012增加了对第三方单元测试框架的支持.

可用的测试框架插件包括:

  • NUnit的
  • xUnit.net
  • MbUnit的
  • QUnit
  • 茉莉花

添加支持非常简单,因为您可以从Visual Studio Extension Manager添加它.

例如,您可以添加"NUnit测试适配器".

现在,"分析代码覆盖率"与第三方单元框架协同工作.您可以检查所有测试或仅检查一个.

如果您使用VS 2010并不害怕升级到VS2012,因为sln文件是兼容的(您需要VS2010 SP1).

  • 仅适用于VS2012 Ultimate或Premium."分析代码覆盖率"在专业版中不可用.[来源](http://msdn.microsoft.com/en-us/library/dd537628.aspx)和[来源](http://social.msdn.microsoft.com/Forums/vstudio/en-US/afd3ee87 -76e4-499d-ad8a-dbc6adb96cb9 /视觉工作室专业2012 - 那里有 - 无键式分析代码覆盖率) (2认同)

Sco*_*ein 19

这是可行的,但需要一些设置.我刚刚使用xUnit.据推测,下面的内容也适用于NUnit.

为此,您需要三个项目

  • 被测系统 - SUT
  • 使用您最喜欢的单元测试框架的测试项目 - xUnitTest
  • VS测试项目 - VSTest

    1. 创建VSTest项目(轻松呼吸)
    2. 删除默认的UnitTest1.cs文件
    3. 向VSTest添加"通用测试"
    4. 指定测试框架的控制台运行器的win32版本的完整路径,例如xunit.console.x86.exe
    5. 指定xUnitTest dll 的完整路径
    6. 在VS测试菜单 - >编辑测试设置 - >本地 - >下
    7. 数据和诊断"标签"
    8. 确保仅启用"代码覆盖率"
    9. 选择Code Coverage行,然后单击上面的"Configure"按钮(是的,这是一个设计良好的UI :)
    10. 在"代码覆盖率详细信息"对话框中
    11. 选择既为dll文件SUT和xUnitTest
    12. 启用"测试中的仪器组件"

现在,当您运行VS2010测试时,它将正确检测测试dll,运行代码运行器并将信息收集到Visual Studio中.


Wad*_*ade 5

在摆弄了一个多小时后,我无法让它正常工作.我能够使用nunit-console.exe使用NUnit 2.5.5的工具正常运行通用测试.虽然NUnit控制台运行程序通过通用VSTest成功运行了我的测试,但我从未能够生成代码覆盖率结果.

虽然VS2010的测试功能在阅读时听起来很棒,但实现起来似乎过于复杂和沉重.多年来我一直在使用NUnit,取得了巨大的成功和极低的摩擦力.

我决定尝试使用JetBrains dotCover测试版,并在5分钟内下载,安装它,并且能够非常成功地配置和使用它.它无缝地集成到ReSharper 5中,只适用于我的NUnit测试.代码突出显示是一个很好的可视化工具,可以快速定位未由测试执行的代码块.