代码之家  ›  专栏  ›  技术社区  ›  Anteru

新.NET项目的推荐单元测试框架

  •  1
  • Anteru  · 技术社区  · 15 年前

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

    现在,我正在研究测试框架,但我想知道将来您会选择哪一种框架来实现可移植性和可靠性。现在,Nunit似乎是标准配置,但考虑到Xunit.net,我想知道这是否会更好,因为它似乎得到了更积极的开发。还是我应该只使用MSTEST?毕竟,我可以预期MSTEST将得到几年的支持。对于Java来说,它是相当明确的JUnit,因为它到处都支持,但是.NET的外观看起来更为分散。

    因此,主要的问题不是特征等(无论如何,MSTEST在这个方向上并不太出色),而是长期的可靠性。因此,您可以推荐哪种单元测试框架?

    3 回复  |  直到 15 年前
        1
  •  3
  •   blowdart    15 年前

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

        2
  •  1
  •   Willem    15 年前

    我想你在寻找主观的答案。我喜欢 NUnit . “接口”的稳定性并没有给我带来任何问题。它与任何IDE都能很好地工作,并且与许多构建工具集成在一起。如果你认识朱尼特,你会发现努尼特很自然。

        3
  •  1
  •   Jeremy McGee    15 年前

    努尼特到处都有人支持。我们的(200多个开发人员)商店刚从MSTEST搬到了Nunit,到目前为止,我们还没有遇到缺乏工具支持的问题:事实上,相反,似乎Nunit周围的支持基础设施非常广泛。这适用于连续集成系统,如哈德逊和巡航控制系统。

    我们发现努尼特的发展仍然非常活跃。2.5版包括以下功能

    Assert.Throws
    从Xunit中获取,但保留了与使用的测试的向后兼容性
    [ExpectedException]

    MSTEST缺少许多这些特性。一些,如

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

    MSTEST的主要积极方面是与Team Foundation Server紧密集成。这使您可以将单元测试与bug报告和构建号联系起来:如果您有足够的规则来使用它,这是一个方便的特性。