【问题标题】:Recommended unit test framework for new .NET projects为新的 .NET 项目推荐的单元测试框架
【发布时间】:2009-06-06 09:12:34
【问题描述】:

我即将开始一个新的 C# 应用程序,这可能需要一些时间(阅读:> 1 年)。我想让它跨平台,也就是说,它应该使用 Mono,但我的主要开发平台是 Visual Studio。

现在我正在研究测试框架,但我想知道您将来会采用哪个既便携又可靠的框架。现在,nUnit 似乎是标准,但考虑到 xUnit.net,我想知道这是否会更好,因为它似乎更积极地开发。还是我应该只坚持使用 MSTest?毕竟,我可以预期 MSTest 将得到几年的支持。对于 Java,它显然是 JUnit,因为它在所有地方都受支持,但 .NET 环境似乎更加分散。

所以主要问题不是功能等(无论如何,MSTest 在那个方向上并不是太出色),而是长期可靠性。鉴于此,您可以推荐哪个单元测试框架?

【问题讨论】:

    标签: .net unit-testing


    【解决方案1】:

    MSTest 当然不是可移植的,它与 Visual Studio 相关联。如果您的目标是 Mono,那么理想情况下,您的测试也应该在 Mono 上运行。 Mono itself uses nUnit,或者更确切地说是nUnitLite - 这很可能会影响你的决定。将TestDriven.NetResharper 添加到您的工具集中可以让您在VS 中轻松运行nUnit - 但如果这是一个问题,它们不是免费的,您可以尝试NUnitit

    【讨论】:

      【解决方案2】:

      我猜您正在寻找主观答案。我喜欢NUnit。 “界面”的稳定性并没有给我带来任何问题。它适用于任何 IDE,并且与许多构建工具集成。此外,如果您了解 JUnit,您会发现 NUnit 非常自然。

      【讨论】:

        【解决方案3】:

        NUnit 确实在所有地方都受到支持。我们(200 多名开发人员)的商店刚刚从 MSTest 转移到 NUnit,到目前为止,我们还没有遇到缺乏工具支持的问题:事实上,恰恰相反,似乎 NUnit 周围的支持基础设施非常广泛。这适用于持续集成系统,例如 Hudson 和 Cruise Control。

        我们发现 NUnit 的开发仍然非常活跃。 2.5 版包含

        等功能
        Assert.Throws
        取自 XUnit,但保留了与使用
        [ExpectedException]
        的测试的向后兼容性

        MSTest 缺少许多这些功能。一些,比如

        [TestCase]
        在开源框架中非常有用:它们不仅仅是“绒毛”,而且减少了您需要编写和调试的测试代码量。

        MSTest 的主要积极方面是与 Team Foundation Server 的紧密集成。这使您可以将单元测试与错误报告和内部版本号联系起来:如果您有足够的纪律来使用它,这是一个方便的功能。

        【讨论】:

          猜你喜欢
          • 2011-02-25
          • 2011-05-10
          • 1970-01-01
          • 1970-01-01
          • 2011-05-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多