55

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

到目前为止,我所做的研究中明显的选择指向 NUnit,但我想在将它推荐给我的团队之前获得实际使用过它的人的印象。

有人用过NUnit吗?如果是这样,是否有任何我应该注意的陷阱或限制?还有其他好的选择吗?如果是这样,如果您同时使用了 NUnit,我将非常感谢您了解它们的优缺点。

4

10 回答 10

44

我认为NUnit 你最好的选择。使用TestDriven.NET,您可以在 Visual Studio 中获得很好的集成。(如果您正在使用 ReSharper,它还有一个单元测试运行器)。NUnit 易于使用并遵循既定的范例。您还会发现大量使用它的项目、教程和指南,这些总是有帮助的。

您的另一个主要选择可能是MbUnit,它越来越将自己定位为选择的BDD框架(与Gallio结合使用)。

于 2008-08-03T14:59:20.993 回答
18

Scott Hanselman 对此有一个很好的播客,题为:

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

汉塞尔分钟#112

于 2008-08-03T14:57:44.600 回答
8

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

但是,当您的团队迁移到 Visual Studio 2008 时,值得研究一下。

于 2008-08-03T15:07:20.213 回答
8

Visual Studio 2008 的内置单元测试还可以,但它很难与CruiseControl.NET集成,肯定比普通的 NUnit 难很多。

因此,如果您打算进行出色的自动化测试,请选择 NUnit。

于 2008-09-16T10:48:30.493 回答
6

我们一直在使用xUnit.net。它似乎结合了 NUnit、MbUnitMSTest的所有优点。

于 2008-10-01T12:57:34.203 回答
5

当我开始单元测试时,我从 NUnit 开始,因为它易于设置和使用。目前我正在使用ReSharper附带的内置测试运行器。这样,我可以轻松地在代码和测试结果之间切换。

顺便说一句,NUnit 会检测您何时编译了代码,因此您无需在 NUnit 中进行任何刷新。当您选择运行特定测试时,ReSharper 会自动进行构建。

于 2008-09-16T10:46:09.033 回答
5

也试试PEX工具。

它是 Microsoft 自己的,可能很快就会集成到VSTS中。它确实支持 NUnit、MbUnitxUnit.net

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

于 2009-04-18T09:00:33.180 回答
5

如果您正在寻找功能测试自动化,VSTT 2010(Visual Studio Team System Test)应该是一个不错的选择。Web 服务测试、UI 测试、BizTalk测试和数据驱动测试支持。请看VSTT

于 2011-05-28T20:03:05.930 回答
4

MbUnit值得一看。它有一组可与 NUnit 相媲美的特性。它有自己的 GUI,或者如果你有ReSharper可以集成到 Visual Studio 中。如果你正在做任何类型的TDD ,我也会推荐Rhino Mocks

于 2008-08-03T19:36:48.470 回答
3

我也会说MbUnit。我喜欢通过指定输入来多次运行单个测试,结果就在测试函数的正上方。这是对我的意思的可怕描述,所以这里有一个链接可以告诉你我的意思

于 2008-08-07T01:55:51.120 回答