我希望在我的工作中引入一个单元测试框架。我们正在使用Visual Studio 2005(虽然我们可能会在未来6个月内迁移到2008年)并主要使用C#。如果框架具有某种最好的IDE集成,但我对那些没有集成但仍然相对简单的框架开放。我会以这种或那种方式抵抗它,所以如果我能确定我所推动的不是颈部疼痛,那将有助于我的情况。
我迄今为止所做的研究显而易见的选择指向了nUnit,但我想在推荐给我的团队之前获得实际使用它的人的印象。
有没有人使用过nUnit?如果是这样,我应该注意哪些陷阱或限制?还有其他好的选择吗?如果是这样的话,如果你同时使用了两个nUnit,我会非常欣赏它们的优缺点。
答案 0 :(得分:41)
我认为NUnit
是最好的选择。使用TestDriven.NET
,您可以在VS.NET
内获得出色的整合。 (如果您正在使用它,Resharper还有一个单元测试运行器)。 NUnit
它易于使用并遵循既定的范例。你也会发现很多使用它的项目/教程/指南总是有帮助的。
你的另一个主要选择可能是MBUnit,它越来越多地将自己定位为BDD
框架(与Gallio http://www.gallio.org一起)。
答案 1 :(得分:17)
答案 2 :(得分:8)
Visual Studio 2008
有一个内置的测试项目类型,其工作方式与NUnit类似,但显然与Visual Studio
的集成更紧密(可以在每个构建上运行并以类似的方式显示结果)在升级解决方案文件时转换结果页面),但它显然没有NUnit那么成熟,因为它很新,而且我不确定它如何处理模拟。
但是当你的团队搬到VS2008
答案 3 :(得分:8)
VS 2008
中的内置单元测试没问题,但很难与CruiseControl.net
集成,当然比普通NUnit
更难。
如果您计划进行不错的自动化测试,那么请使用NUnit
。
答案 4 :(得分:6)
我们一直在使用xUnit.net。它似乎结合了nUnit
,mbUnit
和MSTest
的所有最佳效果。
答案 5 :(得分:5)
当我开始进行单元测试时,我开始使用NUnit
,因为它很容易设置和使用,目前我正在使用Resharper
附带的内置测试运行器,这样我就可以轻松翻转代码和测试结果之间。
当您编译代码时,NUnit
会发现NUnit
,因此您无需在Resharper
中进行任何刷新。当您选择运行特定测试时,{{1}}会自动执行构建。
答案 6 :(得分:5)
答案 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.