我意识到有很多关于这个话题的问题,但不知怎么的,我没有找到一个能满足我的需求。
我的团队正在寻找开始自动单元测试我们的应用程序。我们从来没有这样做过,而且球队中没有人对此有丰富的经验。我被要求研究和找到一个框架来自动化我们的单元测试。到目前为止,我已经把选择范围缩小到了MSTest、NUnit和xUnit。
在互联网上,我看到了关于MSTest的负面评论,但对我们来说,这似乎是最方便的工具。
1)我们的应用程序是.NET
2)我们在整个团队的开发中使用了许可的VS IDE。
3)源代码管理是2010
4)我们计划将CI/CD集成作为软件交付过程的一部分。
我觉得MSTest集成到这个设置中,并为我们提供了最干净的界面。与我们应该考虑的NUnit或xUnit相比MSTest是否有显著的优势?
发布于 2016-06-27 15:44:56
我有偏见,因为我在NUnit上工作,但NUnit或xUnit的优点是,这两个框架都提供了更多的功能,比如数据驱动测试、并行执行和许多高级特性。
尽管如此,MSTest并没有什么问题,特别是如果您的团队在单元测试方面缺乏经验的话。它与Visual和TFS很好地集成在一起,所以添加测试是相当无痛的。NUnit和xUnit都集成得很好,但它们可能需要更多的设置。
继续,从MSTest开始。这是一个简单的单元测试入门。如果您开始遇到MSTest的一些限制,那么向NUnit或xUnit的迁移是相当容易的。对于简单的情况,只需更改NuGet包,然后查找/替换属性即可。
当谈到在xUnit和NUnit之间进行选择时,两者都是很好的选择,但每一个都有不同的哲学。NUnit倾向于更灵活,允许一系列测试样式,并且可以用于集成测试。然而,它是足够灵活的,允许你射击自己的脚,并允许你写的纯粹主义者会皱眉的测试。NUnit把选择留给你。
然而,xUnit倾向于更加固执己见,并通过单元测试将您推向“成功的深渊”。在我的经验中,它对于绿色领域项目是很好的,但是它可以使一些架构较差的褐色字段项目在不进行重构的情况下很难进行测试。
最后,这些测试框架都不会出错。
发布于 2016-11-07 09:27:39
我想补充一下XUnit的一个负面方面。它甚至没有基本的文档,除了“开始”之外,什么都没有。没有API什么都没有。
发布于 2017-06-06 01:58:05
以下是对这三个框架的简要分析,并按颜色排列。
色彩传奇:
MSTest它之所以好,只是因为它很简单,并且集成到Visual中,而且它来自微软。它不够灵活,也不能很好地扩展。但不仅仅是一个单元测试框架,它还支持集成测试、Web (load)性能测试。另外两个是纯单元测试框架。所以我会说MSTest是“全行业的杰克,没有人的主人”。
NUnit是我的选择,因为它一直以来都是最好的。它更灵活和简单,有很好的用户基础,文档和社区支持。
XUnit是我最不喜欢的,因为它的风格略有不同,我个人认为它并不比NUnit更有优势。在某些情况下,您需要对代码进行一些重构,以适应测试用例。但这只是我的观点,因为有很多人更喜欢XUnit。
https://stackoverflow.com/questions/38063903
复制