.NET测试框架建议

时间:2008-08-03 14:53:54

标签: c# .net visual-studio unit-testing

我希望在我的工作中引入一个单元测试框架。我们正在使用Visual Studio 2005(虽然我们可能会在未来6个月内迁移到2008年)并主要使用C#。如果框架具有某种最好的IDE集成,但我对那些没有集成但仍然相对简单的框架开放。我会以这种或那种方式抵抗它,所以如果我能确定我所推动的不是颈部疼痛,那将有助于我的情况。

我迄今为止所做的研究显而易见的选择指向了nUnit,但我想在推荐给我的团队之前获得实际使用它的人的印象。

有没有人使用过nUnit?如果是这样,我应该注意哪些陷阱或限制?还有其他好的选择吗?如果是这样的话,如果你同时使用了两个nUnit,我会非常欣赏它们的优缺点。

10 个答案:

答案 0 :(得分:41)

我认为NUnit 最好的选择。使用TestDriven.NET,您可以在VS.NET内获得出色的整合。 (如果您正在使用它,Resharper还有一个单元测试运行器)。 NUnit它易于使用并遵循既定的范例。你也会发现很多使用它的项目/教程/指南总是有帮助的。

你的另一个主要选择可能是MBUnit,它越来越多地将自己定位为BDD框架(与Gallio http://www.gallio.org一起)。

答案 1 :(得分:17)

斯科特·汉塞尔曼(Scott Hanselman)有一个关于此的好播客,名为:

  

“.NET单元测试框架的过去,现在和未来”

Hanselminutes #112

答案 2 :(得分:8)

Visual Studio 2008有一个内置的测试项目类型,其工作方式与NUnit类似,但显然与Visual Studio的集成更紧密(可以在每个构建上运行并以类似的方式显示结果)在升级解决方案文件时转换结果页面),但它显然没有NUnit那么成熟,因为它很新,而且我不确定它如何处理模拟。

但是当你的团队搬到VS2008

时,值得研究一下

答案 3 :(得分:8)

VS 2008中的内置单元测试没问题,但很难与CruiseControl.net集成,当然比普通NUnit更难。

如果您计划进行不错的自动化测试,那么请使用NUnit

答案 4 :(得分:6)

我们一直在使用xUnit.net。它似乎结合了nUnitmbUnitMSTest的所有最佳效果。

答案 5 :(得分:5)

当我开始进行单元测试时,我开始使用NUnit,因为它很容易设置和使用,目前我正在使用Resharper附带的内置测试运行器,这样我就可以轻松翻转代码和测试结果之间。 当您编译代码时,NUnit会发现NUnit,因此您无需在Resharper中进行任何刷新。当您选择运行特定测试时,{{1}}会自动执行构建。

答案 6 :(得分:5)

另请尝试使用PEX工具 微软自己可能很快将其整合到VSTS中 并支持NUnitMbUnitxUnit.net

我还使用小型控制台应用程序来测试一个类或小型库。您可以复制粘贴here

中的代码

答案 7 :(得分:5)

如果您正在寻找功能测试自动化,

VSTT 2010应该是一个不错的选择。 Web服务测试,UI测试,Biztalk测试和数据驱动测试支持。请查看VSTT

答案 8 :(得分:4)

mbUnit值得一试,它有一组与NUnit相当的功能,它有自己的GUI,或者如果你有VS可以集成到Resharper 。如果您正在进行任何类型的Rhino Mocks,我还会推荐TDD

答案 9 :(得分:3)

我也想说mbUnit,我希望能够通过在测试函数上方指定输入和结果多次运行单个测试。对我的意思的可怕描述here is a link that shows you what I mean.