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

时间:2020-03-06 14:40:06  来源:igfitidea点击:

我已经使用NUnit几年了。我已经尝试了很短一段时间的MBUnit以及Zenebug和XUnit,但是我一直回到NUnit。

我们最喜欢/最常用的单元测试框架是什么?我们能解释一下为什么要使用它吗?

解决方案

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

我使用Nunit已经有一段时间了,但是我碰巧更喜欢VS中的东西。因此,我现在正在使用MSUnit。首选是在VS中安装较少的加载项。

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

单位

我喜欢它处理报告的方式,并且我期待听到一些即将发布的功能,例如与JsUnit集成。

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

在使NUnit版本与团队其他成员保持同步方面,我们也遇到了问题。这是一个小麻烦(去升级并修复项目引用),但是随着开关的使用而消失了。

xUnit.net,但我几乎没有偏见。 :)

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

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

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

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

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

我也听说它将能够

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

编辑:现在确实超出了alpha版本。我们已经在公司试用过,我们真的很讨厌它。使用起来很恐怖,而且非常慢。真可惜。

我已经使用nUnit多年了,但是当我们转到VS2008和TFS 2008(使用TeamBuild)时,我们决定尝试使用MSTest。那里没有什么可抱怨的……我们非常喜欢它与IDE以及CI构建服务器的集成程度。

我们正在尝试的一项具有巨大潜力的新事物是Microsoft Research的另一项添加功能,称为Pex(需要VS2008)。正如他们所说:" Pex通过基于动态符号执行的自动探索性测试,从手写的参数化单元测试生成单元测试。"我的表达方式是:该工具对单元测试以及目标代码和codegen的单元测试进行静态分析,以实现超高代码覆盖率(如果我们手工完成,这通常是不切实际的)。

Resharper对NUnit测试的支持非常出色,这使我远离NUnit的门槛很高。我可以直接从Visual Studio运行解决方案中的所有测试,也可以深入研究并专注于特定测试。当我的代码签入时,我的持续集成版本将运行相同的测试。这使我对开发过程充满了信心。

微软测试

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

我不知道它是否是我的最爱(还没有尝试过很多),但是它很方便,因为它内置在Visual Studio中。

  • xUnit-更少的仪式,支持数据驱动的测试和其他扩展

我已经使用NUnit已有4年了,肯定会推荐使用它。为JetStudio的VisualStudio插件重新塑形包括一个UnitTestRunner,它与VisualStudio很好地集成在一起,并允许我们直接从IDE中运行/调试测试。 Resharper,NUnit和RhinoMocks是我首选的UnitTesting工具套件。

我既使用了NUnit,也使用了MS Test。我喜欢MS Test与IDE的集成以及代码覆盖范围的其他好处。但是由于性能原因以及流利的断言之类的原因,我宁愿使用NUnit而不是MS测试。

我们可以使用称为Should的库编写与框架无关的断言。它还具有非常好的流利语法,如果我们喜欢流利的接口,可以使用它。我有一篇与此相关的博客文章。

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

如果我们使用类似Should应该断言的东西,那么这两个测试版本几乎相同,并且我认为这两个框架之间没有太大区别。

我在一个博客中比较了NUnit和MSTest单元测试框架。