最喜欢的.NET单元测试框架

时间:2008-09-24 15:00:01

标签: unit-testing nunit automated-tests

我已经使用NUnit几年了。我已经尝试了MBUnit以及Zenebug和XUnit,但我一直在回NUnit。

您最喜欢/最常用的单元测试框架是什么?你能解释一下你使用它的原因吗?

15 个答案:

答案 0 :(得分:20)

Nunit获胜!!它简单易行。没有混乱,没有大惊小怪。

答案 1 :(得分:10)

xUnit.net,但我几乎不偏不倚。 :)

为什么我使用它:http://www.codeplex.com/xunit/Wiki/View.aspx?title=WhyDidWeBuildXunit

答案 2 :(得分:7)

MbUnit

我喜欢它处理报告的方式,我期待着我所听到的一些即将推出的功能,例如与JsUnit的集成。

答案 3 :(得分:6)

我已经使用了nUnit多年,但是当我们转移到VS2008和TFS 2008(使用TeamBuild)时,我们决定尝试使用MSTest。没有大的抱怨......我们真的很喜欢它与IDE以及CI构建服务器的集成。

我们正在尝试的一个看起来具有强大潜力的新事物是Microsoft Research的另一个名为Pex的附加组件(需要VS2008)。正如他们所说:“Pex通过基于动态符号执行的自动探索性测试,通过手写参数化单元测试生成单元测试。”我说的方法是:这个东西对你的单元测试和目标代码以及codegen的单元测试进行静态分析,以实现超高代码覆盖率(如果你手工完成,这通常是不切实际的。)

答案 4 :(得分:4)

Gallio 一旦变得更稳定(目前为alpha),它看起来会很棒。

它不仅仅是一个测试框架,而是一个测试自动化平台,因此它可以与许多现有的测试框架(MbUnit,NUnit,xUnit.net)一起使用,但是可以完全扩展,具有许多内置的附加功能,例如以多种格式生成报告和代码分析工具。

我也听说过它能够

  • 输出图像流,例如WatiN测试失败可以作为屏幕截图输出,因此您可以看到测试失败时浏览器处于什么状态。
  • 按命名空间过滤,因此您可以在运行之前轻松取消选中整个命名空间的测试

编辑:现在确实没有阿尔法了。我们在公司试过,我们真的很讨厌它。使用起来非常糟糕而且非常慢。多么可惜。

答案 5 :(得分:3)

我已经使用了Nunit很长一段时间了,但我碰巧更喜欢把东西烧成VS.所以,我现在正在使用MSUnit。只是喜欢在VS中安装更少的加载项。

答案 6 :(得分:3)

NUnit的。我们可以在CC上使用它。

答案 7 :(得分:2)

我喜欢xUnit,因为它使用构造函数和Dispose方法的方式,而不必将属性应用于其他方法进行初始化以及所有这些。

答案 8 :(得分:2)

MbUnit与NUnit具有兼容的语法,但具有更多功能(尤其是数据驱动的测试)。

答案 9 :(得分:2)

在Resharper中对NUnit测试的支持很棒,并为我离开NUnit设置了很高的标准。我可以直接从Visual Studio中运行解决方案中的所有测试,或者我可以向下钻取并专注于特定测试。签入我的代码时,我的持续集成构建运行相同的测试。这让我对我的开发过程充满信心。

答案 10 :(得分:2)

MSTest的

http://en.wikipedia.org/wiki/MSTest

我不知道它是否是我最喜欢的(还没有真正尝试过很多其他的),但它很方便,因为它内置于Visual Studio中。

答案 11 :(得分:1)

我曾经使用过NUnit,但现在我更喜欢Visual Studio 2008附带的框架,因为它集成了更紧密,并且更容易设置为测试私有方法。

我们还遇到了将NUnit版本与团队其他成员保持同步的问题。这是一个小麻烦(去升级,或修复项目参考),但它随着开关而消失。

答案 12 :(得分:1)

  1. xUnit - 减少仪式,支持数据驱动测试和其他扩展

答案 13 :(得分:1)

我已经使用NUnit已经有4年了,肯定会推荐使用它。 Reshaper - JetBrains的VisualStudio插件包含一个UnitTestRunner,可以很好地与VisualStudio集成,并允许您直接从IDE运行/调试测试。 Resharper,NUnit和RhinoMocks是我为UnitTesting提供的首选工具套件。

答案 14 :(得分:1)

我既使用了NUnit,也使用了MS Test。我喜欢MS Test与IDE的集成以及代码覆盖的额外好处。但是由于性能原因以及流畅的断言之类的东西,我更喜欢使用NUnit而不是MS测试。

您可以使用名为Should的库编写框架无关的断言。它还有一个非常好的流利语法,如果你喜欢流畅的界面,可以使用它。我有一篇与之相关的博客文章。

http://nileshgule.blogspot.com/2010/11/use-should-assertion-library-to-write.html

如果我们使用类似于断言的东西,那么两个版本的测试几乎都是相同的,我看不出两个框架之间有太大的区别。

我在我的一个blog中对NUnit和MSTest单元测试框架进行了比较。