我即将开始一个新的C#应用程序,可能需要一段时间(阅读:> 1年)。我想保持跨平台,也就是说,它应该使用Mono,但我的主要开发平台是Visual Studio。
现在我正在研究测试框架,但是我想知道你将来会采用哪种便携式和可靠性。现在,nUnit似乎是标准的,但鉴于xUnit.net,我想知道这是否会更好,因为它似乎更积极地开发。或者我应该只坚持使用MSTest?毕竟,我可以期待MSTest能够得到多年的支持。对于Java来说,它显然是JUnit,因为它在任何地方都受到支持,但.NET环境似乎更加分散。
所以主要问题不是特征等(无论如何,MSTest在这个方向上都不是太棒了),而是长期可靠性。有鉴于此,您可以推荐哪种单元测试框架?
答案 0 :(得分:3)
MSTest当然不是可移植的,而且它与Visual Studio绑定在一起。如果您的目标是Mono,那么理想情况下您的测试也应该在Mono上运行。 Mono itself uses nUnit,或者更确切地说nUnitLite - 这可能会影响您的决定。将TestDriven.Net或Resharper添加到您的工具集可以让您在VS中轻松运行nUnit - 但如果您遇到问题则不会免费NUnitit
答案 1 :(得分:1)
我猜你正在寻找主观的答案。我喜欢NUnit。 “接口”的稳定性并没有给我带来任何问题。它适用于任何IDE,并与许多构建工具集成。此外,如果您了解JUnit,您会发现NUnit非常自然。
答案 2 :(得分:1)
NUnit到处都是支持。我们(200多家开发商)的工厂刚刚从MSTest迁移到NUnit,到目前为止我们还没有遇到缺乏工具支持的问题:事实上,相反,NUnit周围的支持基础设施似乎非常广泛。这适用于Hudson和Cruise Control等持续集成系统。
我们发现NUnit的发展仍然非常活跃。版本2.5包含来自XUnit的
Assert.Throws等功能,但保留了与使用
[ExpectedException]
的测试的向后兼容性
MSTest缺少许多这些功能。一些(例如
[TestCase]在开源框架中非常有用:它们不仅仅是“绒毛”,而且还减少了编写和调试所需的测试代码量。
MSTest的主要积极方面是与Team Foundation Server的紧密集成。这使您可以将单元测试与错误报告和构建数字相关联:如果您足够严格使用它,这是一个方便的功能。