我公司正在将Visual Studio 2012升级到2013 Premium。在此过程中,我们也希望开始使用Visual Studio Team Services自动化我们的测试
我在过去读过一些MSTest vs nUnit的帖子和文章,但大多数都比较了旧版本的MSTest。此外,与MSTest相比,nUnit获得了许多好评。
我的问题是,考虑到微软对ALM、敏捷实践的承诺,以及他们在VS2013 Premium和Visual Studio Team Services中添加的所有新东西,以促进和鼓励自动化测试,MSTest与nUnit相比如何?
在决定使用测试框架之前,我还应该考虑什么?
MSTest自最初引入以来没有太大变化,因此那些旧的比较帖子仍然有效。微软对ALM的关注主要是针对进一步的工具和服务器产品,但是基本的测试框架并没有太大的变化。
值得注意的是,MSTest和他们的整个ALM策略针对许多不同风格的自动化测试,包括集成测试、系统测试、性能测试等,所以当它试图成为一个通用的方法时,它非常不适合单元测试,因为它太重了,无法使用。
虽然NUnit更好,但我也不推荐它。它多年来也没有太大变化,坦率地说,可扩展性模型是一团糟。
相反,我推荐xUnit.net。虽然它也不完美,但它是目前。net上最好的主流选择。xUnit.net优于MSTest的原因有很多MSTest Vs NUnit:
- MSTest与VS集成,所以它将很容易使用。NUnit将需要第三方工具(有些是免费的,有些是付费的)。
- VS将在MSTest中提供代码覆盖率。NUnit需要DotCover(这是一个付费工具)。
- MSTest有一个选项,如果测试不相互依赖,可以并行执行测试。这不是NUnit提供的功能。
- NUNit有
TestCaseSourceAttribute
,可以帮助您实现参数化测试用例,但在MSTest中,您需要DataSourceAttribute
,这将是XML文件,当您在方法中具有复杂的逻辑时,将难以管理。 - NUnit比mest更快。
总的来说,这两个框架都很好用,但我建议使用NUnit。