2009-03-02 79 views
4

我听到了许多不同的意见,是什么让一个比另一个更好。但任何人都可以提供一个技术解释,为什么我应该选择一个单元测试框架而不是另一个。例如,我使用Visual Studio Team System。为什么选择Visual Studio内置的单元测试功能的开源测试框架(NUnit,xUnit,MbUnit等)?有关系吗?.NET单元测试框架在那里有什么区别?

编辑:为了清楚起见,我并不是在寻找关于“哪个单元测试框架最好”的意见......我正在寻找技术细节,以了解它们的不同之处。

回答

7

还有的NUnit的,MbUnit的,MSTest的,和xUnit.net之间的属性和断言差异在http://www.codeplex.com/xunit/Wiki/View.aspx?title=Comparisons

为MSTest的VS开放源代码解决方案的对比,它广泛地看出,开源软件包,特别是MbUnit的和xUnit.net是单元测试发生的创新之处。

这就是说,现在Peli de Halleux正在为MS工作,并且像Pex这样的生产创新可能会改变。

+0

感谢您的链接。很有帮助! – 2009-03-11 15:30:12

2

我已经与.NET的几个单元测试框架合作过,并没有发现它们中的任何一个与我的目的有很大不同。

最初反对使用Visual Studio Team System附带的单元测试的观点是,使用较小版本的Visual Studio的用户无法运行测试。现在这个问题不大,因为我认为VS Pro现在包含单元测试。我喜欢Visual Studio可以自动为您生成很多测试用具。

只要你真的在编写单元测试,我认为你选择哪个工具并不重要。

5

我只与NUnit和微软的版本一样。在我看来,他们比他们更为相似。但是,根据您的项目设置,可能有一些相关的财务考虑因素。

微软的测试框架在其较便宜/免费的SKU中不可用,但是一旦您为整个软件包付费(我知道这并不便宜),您可以获得单元测试,测试运行和代码覆盖单一包装,非常方便。

如果切换到NUnit,您必须放弃VS集成或获得TestDriven.NET或Resharper等测试运行器。当我看到这些时,他们都需要商业用途许可证。即每个开发者的成本增加。另外这些工具没有代码覆盖,所以你必须得到像NCover这样的东西。再次,当我检查时,这带有用于商业用途的许可证。

不可否认,自从我研究这个以来,许可证可能已经发生变化,但每个开发人员的额外成本是我们选择使用Microsoft解决方案的部分原因。 VS Express和其他工具的价格可能比VS Team Foundation便宜,但由于我们不得不与VS TF一起使用,所以我们没有什么好处。

如果你在做开源/非商业项目,我相信你可以获得免费版本。

+0

但是,为什么你想不用ReSharper编码? :) – TrueWill 2010-02-13 22:42:36

相关问题