.NET测试框架建议
我希望在我的工作中将单元测试框架引入其中。我们正在使用Visual Studio 2005(尽管我们可能会在接下来的6个月内升级到2008),并且主要使用C#进行工作。如果框架具有某种最好的IDE集成,但是我愿意接受那些没有集成但仍然相对容易建立的框架。我将以一种或者另一种方式来抵抗它,因此,如果我可以确保所推动的不是脖子上的疼痛,那将对我的情况有所帮助。
到目前为止,我所做的研究中显而易见的选择指向nUnit,但在将其推荐给我的团队之前,我想得到一个实际使用它的人的印象。
有没有人使用过nUnit?如果是这样,我应该注意哪些陷阱或者限制?还有其他好的选择吗?如果是这样,那么如果我们同时使用了这两个nUnit,那么我将不胜感激关于它们的优缺点的想法。
解决方案:
斯科特·汉塞尔曼(Scott Hanselman)对此进行了很好的播客,标题为:
"The Past, Present and Future of .NET Unit Testing Frameworks"
:
Hanselminutes#112
我认为NUnit
是我们最好的选择。使用" TestDriven.NET",我们可以在" VS.NET"中实现出色的集成。 (Resharper也有一个单元测试运行器,如果我们正在使用它)。 NUnit易于使用,并遵循已建立的范例。我们还会发现大量使用它的项目/教程/指南,这总是有帮助的。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
另一个主要选择可能是MBUnit,它越来越多地成为" BDD"框架的首选(与Gallio http://www.gallio.org结合使用)。
Visual Studio 2008具有内置的测试项目类型,其工作方式与NUnit相似,但显然与Visual Studio具有更紧密的集成(可以在每个生成版本上运行,并以与转换结果相似的方式显示结果升级## 解决方案文件时的页面),但是它显然还不如NUnit成熟,因为它很新,我不确定它如何处理模拟。
但是,当团队迁移到" VS2008"时,值得研究一下
值得一看的是mbUnit,它具有与NUnit相当的一组功能,具有自己的GUI,如果我们具有Resharper,则可以集成到VS中。如果我们正在做任何类型的" TDD",我也建议我们使用" Rhino Mocks"。
我还要说mbUnit,我希望能够仅通过在测试函数上方指定输入和结果来多次运行单个测试。我的意思的恐怖描述,所以这里的链接向我们展示了我的意思。
当我开始单元测试时,我从NUnit
开始,因为它易于设置和使用,目前我正在使用Resharper
附带的内置测试运行器,这样我就可以轻松地在代码和测试结果之间切换。
顺便说一句,NUnit
会在我们编译代码时进行检测,因此我们无需在NUnit
中进行任何刷新。当我们选择运行特定的测试时,Resharper
会自动进行构建。
VS 2008中的内置单元测试是可以的,但是它很难与CruiseControl.net集成,这肯定比普通的NUnit难得多。
因此,如果我们打算进行漂亮的自动化测试,请使用NUnit
。
我们一直在使用xUnit.net。它似乎结合了nUnit,mbUnit和MSTest的所有优点。
也尝试PEX工具
微软自己可能很快将其集成到VSTS中
并且确实支持NUnit
,MbUnit
和xUnit.net
我还使用小型控制台应用程序来测试一个类或者小型库。我们可以从此处复制粘贴代码