关于c#:. NET单元测试包?

关于c#:. NET单元测试包?

.NET Unit Testing packages?

几年没有完全使用它之后,请回到更多的.NET,并想知道这些天好的单元测试软件包是什么。

我对NUnit很熟悉(几年前),并且与IronRuby进行了短暂的交流,其目标是使rspec之类的东西继续发展,但除此之外并没有太多的了解。

我知道我可以用Google来搜索并称之为一天,但是我相信通过在这里提出问题,我可能会得到更好,更明智的回复:-)

建议?


有这么多疯狂。我猜是疯狂的好。

  • 对于保守的类型(我),NUnit仍然可用,并且功能强大。
  • 对于Microsoft类型,MSTest是足够的,但与Nunit相比,速度慢且笨拙。它也缺少代码覆盖,而没有为Visual Studio的昂贵版本付出高昂的代价。
  • 还有MbUnit。它类似于NUnit,但具有一些不错的功能,例如RowTest(使用不同的参数运行相同的测试)和Rollback(将数据库放回,就像您在测试后发现的那样)
  • 最后,xUnit.net从某种角度来说是时髦的选择。
  • 哦,TestDriven.NET将为您提供Nunit和MBunit的IDE集成。

我确定他们都很好。不过,除非您只是享受将所有功能都集成在一个IDE中的便利,否则我还是会避开MSTest。

Scott Hanselman对此主题做了一个播客。


坚持使用NUnit。不要靠近MSTest。

使用NUnit + ReSharper绝对是一件令人愉快的事情。


我们在这里使用NUnit和MBUnit。我们使用TestDriven.NET在Visual Studio中运行单元测试。我们使用强烈推荐的出色RhinoMocks作为模拟框架。


我曾经使用NUnit,但现在倾向于使用MbUnit,因为它具有两个主要功能:
1. RowTest功能使您可以轻松地对不同的参数集运行相同的测试,如果您确实需要全面的知识,这一点很重要。
2.回滚功能使您可以对数据库运行测试,同时在每次测试后回滚更改,从而使数据库始终保持完全相同的状态。就像添加[Rollback]属性一样简单。

MbUnit的另一个不错的方面是它的语法与NUnit几乎相同,因此,如果您已经在NUnit下放置了一个完整的测试平台,则只需切换引用即可,而无需更改任何代码(很多?)。


xUnit.net似乎为N / MB / MS / Unit提供了稍微不同的方法,这很有趣。

在寻找类似rspec的解决方案时(因为我喜欢rspec),我还遇到了NSpec,它看起来有些罗word,但与NSpec Extensions插件结合使用C#3扩展方法,看起来非常不错。


我使用以下内容:

TestDriven.NET-用于Visual Studio的单元测试插件

Typemock隔离器-用于.Net单元测试的模拟框架

NUnit-C#中的开源单元测试框架。


这是一个老问题,但是您可能会发现有趣的是,Gallio v3.1现在通过IronRuby支持RSpec。


我举了一个使用ironRuby测试.net库的小例子:
http://khebbie.dk/post/2008/08/Example-of-using-ironRubys-mini_rspec-library.aspx


我喜欢TestDriven.NET(即使我使用ReSharper),我对XUnit.net也很满意。它使用事实而不是很多人不喜欢的测试,但是我喜欢术语上的差异。考虑有关您的软件的自动证明事实的集合,并查看进行更改时违反了哪些事实,这很有用。

请注意,Visual Studio 2008 Professional(及更高版本)现在带有集成的单元测试(以前仅在Team System Edition中可用),并且可能适合您的需求。


就我而言,这实际上是个人意见(我想这是多余的,因为它是一个论坛)。 NUnit,MSTest等都可以做同样的事情。但是我发现NMock是必不可少的。

NMock或任何模拟程序包都不是单元测试,但是它使单元测试变得非常容易,因此也很容易。


我曾经使用过NUnit,但是由于它具有更多功能,所以我切换到了MbUnit。我喜欢RowTest。它使您可以对测试进行参数化。 NUnit确实有更好的工具支持。我正在使用ReSharper运行MbUnit测试。我在运行MbUnit的SetUp方法的TestDriven.NET遇到问题。


我喜欢MbUnit,呃,Gallio。对我来说最重要的是在Visual Studio中拥有良好的工具支持。为此,我使用Resharper,它具有MbUnit测试运行程序。许多人似乎也喜欢TestDriven.NET作为他们的测试跑步者。


推荐阅读