Visual Studio 2013 MSTest与NUnit

我的公司正在将我们的Visual Studio 2012升级到2013 Premium。 在这个过程中,我们也正在开始使用Visual Studio Team Services自动化我们的testing

过去我已经阅读了MSTest vs nUnit的文章和文章,但是大部分文章都比较了老版本的MSTest。 另外,与MSTest相比,nUnit有很多有利的评论。

我的问题是,考虑到微软对ALM,敏捷实践以及他们添加到VS2013 Premium和Visual Studio Team Services中的所有新function,以促进和鼓励自动化testing,MSTest与nUnit相比如何?

在决定使用testing框架之前,我应该考虑哪些其他因素?

MSTest自最初推出以来没有多less变化,所以这些旧的比较post仍然有效。 微软对ALM的关注主要针对进一步的工具和服务器产品,但基本的testing框架并没有太大的改变。

另外值得注意的是,MSTest及其整个ALM策略针对的是多种不同types的自动化testing,包括集成testing,系统testing,性能testing等等,所以当它试图做到一刀切时,很不适合进行unit testing,因为它太难处理了。

虽然NUnit更好,我也不会推荐它。 它也没有多less变化多less,可扩展性模型坦白地说是一团糟。

相反,我build议xUnit.net 。 虽然它也不完美,但它目前是.NET上最好的主streamselect。 xUnit.net比MSTest更好的原因有很多。

MSTest Vs NUnit:

  1. MSTest与VS集成,因此易于使用。 NUnit将需要第三方工具(有些是免费的,有些是付费的)。
  2. VS会给你在MSTest代码覆盖。 NUnit需要DotCover(这是付费工具)。
  3. 如果MSTest不相互依赖,则可以select并行执行testing。 这不是NUnit提供的function。
  4. NUNit有TestCaseSourceAttribute ,它可以帮助你实现参数化的testing用例,但是在MSTest中,你将需要DataSourceAttribute ,它将在xml文件中,当你在方法中有复杂的逻辑时将很难pipe理。
  5. 与MSTest相比,NUnit速度更快。

总的来说,这两个框架都很好用,但是我build议去NUnit。