Visual studio 2010 VS2010代码覆盖率支持nUnit吗?

Visual studio 2010 VS2010代码覆盖率支持nUnit吗?,visual-studio-2010,nunit,mstest,code-coverage,Visual Studio 2010,Nunit,Mstest,Code Coverage,根据VS2010,Premium和Ultimate有一个用于检查代码覆盖率的工具,以及一些其他测试工具。这是否也支持nUnit,还是仅支持MS测试 据我所知,它不是。但我们的工具确实如此。理论上,应该如此。甚至还有。基本上,您需要设置一个“通用测试项目”来包装NUnit测试。实际上,我已经试着让它工作了将近三个小时,但它仍然没有工作。已检测程序集,但没有覆盖率结果 我总是收到这样一条消息:“生成的结果为空:未使用任何插入指令的二进制文件。请查看测试运行详细信息以了解任何插入指令的问题”,但该文件

根据VS2010,Premium和Ultimate有一个用于检查代码覆盖率的工具,以及一些其他测试工具。这是否也支持nUnit,还是仅支持MS测试

据我所知,它不是。但我们的工具确实如此。

理论上,应该如此。甚至还有。基本上,您需要设置一个“通用测试项目”来包装NUnit测试。实际上,我已经试着让它工作了将近三个小时,但它仍然没有工作。已检测程序集,但没有覆盖率结果

我总是收到这样一条消息:“生成的结果为空:未使用任何插入指令的二进制文件。请查看测试运行详细信息以了解任何插入指令的问题”,但该文件中未报告任何问题

此外,事件日志中会弹出一个VSPerf错误。我但是,这可能与我的机器有关。由于我刚刚提交了这个bug,我还不知道其他人是否能够重现这个问题。

这是可行的,但需要一些设置。我刚和xUnit一起工作。大概下面的内容也适用于NUnit

要使其工作,您需要三个项目

  • 正在测试的系统--SUT
  • 使用您喜爱的单元测试框架的测试项目--xUnitTest
  • VS测试项目--VSTest

  • 创建VSTest项目(轻松呼吸)
  • 删除默认的UnitTest1.cs文件
  • 将“通用测试”添加到VSTest
  • 为测试框架指定win32版本的console runner的完整路径,例如xunit.console.x86.exe
  • 指定xUnitTestdll的完整路径
  • 在VS测试菜单->编辑测试设置->本地->
  • 数据和诊断“选项卡”
  • 确保仅启用了代码覆盖率
  • 选择代码覆盖率行,然后单击上面的“配置”按钮(是的,这是一个设计良好的UI:)
  • 在“代码覆盖率详细信息”对话框中
  • 选择SUT和xUnitTest的DLL
  • 启用“测试中的仪器组件”

现在,当您运行VS2010测试时,它将正确地插入测试DLL,运行代码运行程序并将信息收集到Visual Studio中。

在处理这个问题一个多小时后,我无法使它正常工作。使用NUnit-console.exe,我能够使用NUnit 2.5.5的检测工具使通用测试正常运行。尽管NUnit控制台运行程序通过通用VSTest成功运行了我的测试,但我始终无法生成代码覆盖率结果

尽管阅读VS2010的测试功能时听起来很棒,但实现似乎过于复杂和繁重。我已经使用NUnit很多年了,非常成功,摩擦非常小


我决定试用beta版,在5分钟内我下载并安装了它,并且能够非常成功地配置和使用它。它毫无征兆地集成到ReSharper 5中,并为我的NUnit测试工作。代码高亮显示是一个很好的可视化工具,可以快速定位测试未执行的代码块。

您需要在NUnit中关闭shadowcopy才能使其正常工作。为此,请使用/noshadow标志


e、 g.C:\ProgramFiles(x86)\NUnit 2.6\bin\NUnit-console-x86.exe MyLibrary.dll/noshadow

我尝试了在Google上找到的所有方法来启用它,然后决定尝试一下TestDriven.NET。它工作得非常出色:正确地剪辑解决方案,测试覆盖率并完成。说真的,这再容易不过了。

我也遇到了同样的问题,我找到了解决办法。“代码覆盖率详细信息”对话框中显示的项目dll是要插入指令的错误程序集,这样会给出空结果。因此,您需要从另一个文件夹中获取该dll,它位于单元测试项目文件夹中!由于您添加了对单元测试项目的引用,所以它将在那里。例如,在我的例子中,我创建了一个简单的项目calced Calculator,然后创建了一个名为TestCalculator的单元测试项目,并在单元测试项目中添加了Calculator.dll作为引用。因此,在“代码覆盖率详细信息”对话框中,我单击“添加程序集”,然后从“.\TestCalculator\bin\Debug”文件夹中选择Calculator.dll。这样就行了

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

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

  • 努尼特
  • xUnit.net
  • 姆布尼特
  • 昆特
  • 茉莉花
添加支持非常简单,因为您可以从VisualStudio扩展管理器添加它

例如,您可以添加“NUnit测试适配器”

现在,“分析代码覆盖率”可以与第三方单元框架一起使用。您可以检查所有测试,也可以只检查一个测试


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

此线程中的许多答案对我帮助很大,但从多个答案中获取所有小细节是非常困难的

我列出了6条提示,再加上斯科特·温斯坦(Scott Weinstein)的有标记的答案,这些提示帮了我的忙:

虽然我不应该在两个答案上都投赞成票,但请不要让我投反对票来抄袭:

  • 斯科特·温斯坦
  • 约翰和斯科特·麦凯
  • 丽丽
  • 记忆素

投票给他们

谢谢你的评论+1.我不知道如果你真的在销售竞争对手的产品,我是否可以在没有消息来源的情况下相信这一点:-P所以我要让这件事再拖一段时间……这是公平的。你不必相信我-下载VS2010的试用版,自己看看:)我们不是与VS竞争-我们提供补充产品来增强它。。。顺便说一句,我刚刚尝试在VS2010 Premium中运行dasBlog(使用NUnit)测试-它没有看到测试。VS2010试验d