根据this schema VS2010 Premium和Ultimate有一个检查代码覆盖率的工具 - 以及一些其他测试工具。这也支持nUnit,还是只支持MS测试?
答案 0 :(得分:26)
Visual Studio 2012增加了对第三方单元测试框架的支持。
可用的测试框架插件包括:
添加支持非常简单,因为您可以从Visual Studio Extension Manager添加它。
例如,您可以添加“NUnit测试适配器”。
现在“Analyze Code Coverage”与第三方单元框架一起使用。您可以检查所有测试或仅检查一个。
如果您使用VS 2010并不害怕升级到VS2012,因为sln文件是兼容的(您需要带有SP1的VS2010)。
答案 1 :(得分:19)
这是可行的,但需要一点的设置。我刚刚使用xUnit。据推测,下面的内容也适用于NUnit。
为此,您需要三个项目
VS测试项目 - VSTest
现在,当您运行VS2010测试时,它将正确检测测试dll,运行代码运行器并将信息收集到Visual Studio中。
答案 2 :(得分:5)
在摆弄了一个多小时之后,我无法让它正常工作。我能够使用nunit-console.exe使用NUnit 2.5.5的工具正常运行通用测试。虽然NUnit控制台运行程序通过通用VSTest成功运行了我的测试,但我从未能够生成代码覆盖率结果。
尽管VS2010的测试功能在阅读时听起来很棒,但实现起来似乎过于复杂和沉重。多年来我一直在使用NUnit取得了巨大的成功和极低的摩擦力。
我决定尝试JetBrains dotCover测试版,并在5分钟内下载,安装它,并且能够非常成功地配置和使用它。它无缝地集成到ReSharper 5中,只适用于我的NUnit测试。代码突出显示是一个很好的可视化工具,可以快速定位未经测试执行的代码块。
答案 3 :(得分:2)
您需要在NUnit中关闭shadowcopy以使其正常工作。为此,请使用/ noshadow标志。
e.g。 C:\ Program Files(x86)\ NUnit 2.6 \ bin \ nunit-console-x86.exe MyLibrary.dll / noshadow
答案 4 :(得分:2)
我尝试了在Google上找到的所有方法,然后决定尝试使用TestDriven.NET。它工作得非常出色:正确克服解决方案,测试覆盖率并完成。说真的,这可不容易。
答案 5 :(得分:2)
我有同样的问题,我找到了解决问题的方法。 “代码覆盖率详细信息”对话框中显示的项目dll是要检测的错误程序集,这样做的结果是空的。所以你需要从另一个文件夹中获取该dll,它位于单元测试项目文件夹中!由于您添加了作为单元测试项目的参考,它将在那里。因此,例如,在我的情况下,我创建了一个简单的项目calced Calculator,然后创建了一个名为TestCalculator的单元测试项目,并在单元测试项目中添加了Calculator.dll作为参考。因此,在“代码覆盖率详细信息”对话框中,我单击“添加程序集”,然后从“.. \ TestCalculator \ bin \ Debug”文件夹中选择Calculator.dll。这样就可以了。
答案 6 :(得分:1)
据我所知,它没有。我们的TestMatrix工具确实可以。
答案 7 :(得分:1)
理论上,它应该。甚至有documentation for it on MSDN。基本上,您需要设置一个包含NUnit测试的“通用测试项目”。在实践中,我一直试图让它工作近三个小时,但它仍然没有。程序集已经过检测,但没有覆盖结果。
我总是收到此消息:“生成空结果:未使用任何检测二进制文件。查看任何检测问题的测试运行详细信息。”,但该文件中未报告任何问题。
此外,弹出事件日志中的VSPerf错误。我submitted this as a bug to Microsoft。但是,这可能与我的机器有关。由于我刚才提交了这个bug,我还不知道其他人是否可以重现这个问题。
答案 8 :(得分:0)
这个帖子中的许多答案对我有很大的帮助,但是从多个答案中获取所有细节是很难的。
我编制了一份6个提示的清单,连同Scott Weinstein的明确答案为我做了诀窍: Running NUnit tests in Visual Studio 2010 with code coverage
虽然我不值得对这两个答案进行投票,但是请不要忘记复制:
赞成他们!