我正在使用Visual Studio(有时还用Resharper)来运行我的单元测试。
我听说过NUnit,但我不太了解它……
我应该关心它吗?它能比Visual Studio提供更好的东西吗?
我应该使用NUnit吗?为什么?
我正在使用Visual Studio(有时还用Resharper)来运行我的单元测试。
我听说过NUnit,但我不太了解它……
我应该关心它吗?它能比Visual Studio提供更好的东西吗?
我应该使用NUnit吗?为什么?
NUnit相对于MS-Test具有一些优势:
Assert.AreEqual(expected, actual)
相对于 Assert.That(actual, Is.EqualTo(expected))
[TestCase]
! NUnit允许参数化测试。从我目前的角度来看(与平均有10名开发人员一起开发了8个月后),我建议不要使用MSTest,理由如下:
换句话说,如果我再次决定8个月前,我可能会选择NUnit。我可能没有集成的测试结果报告,但开发人员将拥有更流畅的测试体验。
这是我使用MS Test的经验:
补充:我们现在有更多的测试用例,无法再从Visual Studio中运行所有测试了,因为会出现OutOfMemoryExceptions和其他不稳定性问题。我们从脚本中运行测试。在VS中查看测试结果非常容易,但是当打开解决方案时,VS会崩溃(每次都会)。因此,我们需要使用文本搜索来查找失败的测试。集成工具已经没有任何优势了。
另一次更新:我们现在使用的是VS 2013。很多东西都改变了。自从我们开始以来,他们已经第三次重写了MS Test测试运行程序。这导致了很多破坏性的改变,但是新版本并没有做任何更好的事情。我们很高兴我们没有使用MS Test的花哨特性,因为它们现在都不再得到支持了。真的很遗憾。我们仍然使用脚本来构建和运行所有单元测试,因为这更方便。Visual Studio需要几分钟才能开始运行测试(测量时间从编译到第一个测试开始)。他们可能会用一次更新来修复这个问题,这可能是我们项目的特定问题。然而,当运行相同的测试时,Resharper要快得多。
结论:至少与Resharper结合使用时,MS Test是有用的。我希望当我们下次更新Visual Studio时,他们最终能找到如何编写测试运行器,并且不会做出这种破坏性的更改。
NUnit可以与Visual Studio结合使用。它是一个框架而非单独的程序,因此您可以尝试一下看是否适合您:)。
(来源:codeplex.com)
“安装插件后,您将在工具菜单下找到一个新的子菜单。”
有关导入NUnit的更多信息,请参见http://nunitit.codeplex.com/。
此外,使用SO的搜索功能可以找到很多信息。例如,此主题列出了NUnit相较于MS标准测试的优势。
MS-Test相对于NUnit最大的优势在于,MS-Test可以使用反射来生成模拟对象。我发现这非常有用。
NUnit可以与VS的标准版一起使用。
我不确定其他人,但 NUnit 提供了漂亮的 GUI 和控制台来运行您的单元测试,您还可以生成 NUnit 测试执行结果的报告,其中会详细说明测试是否失败或通过以及单元测试所需的时间。