it-swarm.cn

.NET的最佳单元测试框架是什么,为什么?

在我看来,每个人都使用NUnit甚至没有考虑其他选项。我认为这是因为:

  • 每个人都已经熟悉它,因此他们不必学习新的API。
  • 它已经与他们的持续集成服务器一起设置为可以与NUnit一起使用。

我对此有错吗?

我最近决定在自己的一个项目中使用xUnit,我喜欢它!这对我来说意义非凡,从概念上讲,这似乎是NUnit向前迈出的明确一步。

我想听听有关哪种框架实际上是最佳框架的意见-无需考虑必须学习或重新配置自动化测试。

26
Nobody

微软测试

我个人使用MSTest。 NUnit确实不错,但是在VS2010中,MSTest已经完全集成到IDE)中,并且具有完整的项目模板。对于.NET,如果您使用的是2010,那么我认为MSTest只是为了代码开箱即用,测试运行器和其他可用的工具而已(最好使用VS2008中的MSTest)(如果您使用CodeRush或R#,那么他们在其他测试框架方面确实拥有非常出色的测试运行程序/工具)

编辑:从那以后我就移到了XUnit。 :D

15
Ryan Hayes

几年前,我开始使用Gallio/MbUnit。而且它提供的功能和宝石是如此强大,以至于我从未后悔自己的选择。实际上,我现在是Gallio OSS项目开发团队的一员。因此我可以做出更大的贡献。

  • MbUnit具有许多强大的功能,这些功能使我的开发人员生活更加轻松(合同验证程序,测试工厂,结构相等比较器,组合测试,数据生成框架,文本区分) ,xml断言,扩展点等)
  • Gallio提供了一个一致的平台,可以使用Nice报告工具来运行我的所有测试。我也很喜欢我可以集成来自其他不使用MbUnit的OSS项目的测试,而只是运行它们的事实。许多第三方工具之间的无缝集成也很方便(R#,PoSh,dotCover等),并且基础结构的可扩展性令人惊叹(例如,我刚刚完成了为本地非托管C++测试框架编写测试适配器的工作) (将很快成为将来版本的一部分)

wiki 当然是发现Gallio和MbUnit v3的一个很好的起点。它仍然遗漏了一些章节,但是它已经非常有用了。

14
Yann Trevin

选择一个并使用它可能是这里最重要的步骤。

我个人出于某些原因会选择 NUnit 。首先是工具支持。有一个 Visual Studio 2010的免费加载项 ,并且所有主要的第三方插件都支持它。每个构建系统,测试覆盖率实用程序和CI服务器都支持它。在许多情况下,没有插件。在代码级别上,它现在可以处理几乎任何情况-数据驱动测试,继承,抽象测试类,通用测试类,设置,拆卸等。在某种程度上,我们有 xUnit =因为NUnit具有丰富而强大的功能。

除了NUnit之外,我认为您可以像Yann所说的那样对MBUnit + Gallio进行一个相当不错的论证-这是一个非常坚实的框架。您应该避免的是MSTest,它有一些致命的缺陷恕我直言。缺陷是测试类的一些约束,例如没有继承以及对专业或更好的Visual Studio SKU的依赖。包括要求将Visual Studio安装在构建服务器上才能运行测试。

9
Wyatt Barnett

原因之一是NUNIT变得比xUnit更行业标准。但就我个人而言,我喜欢xunit。

0
Cheung