.NET单元测试包?

时间:2020-03-05 18:37:38  来源:igfitidea点击:

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

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

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

有什么建议吗?

解决方案

回答

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

回答

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

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

回答

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

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

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

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

回答

xUnit.net看起来为N / MB / MS / Unit提供了一种稍微不同的方法,这很有趣。

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

回答

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

回答

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

回答

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

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

回答

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

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

回答

我曾经使用NUnit,但现在倾向于使用MbUnit,因为它具有两个主要功能:

  1. RowTest功能使我们可以轻松地对不同的参数集运行相同的测试,如果我们确实需要全面的知识,这一点很重要。
    2.回滚功能使我们可以对数据库运行测试,同时在每次测试后回滚更改,从而使数据库始终保持完全相同的状态。就像添加[Rollback]属性一样简单。

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

回答

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

回答

我使用以下内容:

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

用于.Net单元测试的Typemock IsolatorMocking框架

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

回答

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