首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NUnit与Visual Studio 2012 MSTest的优缺点

NUnit与Visual Studio 2012 MSTest的优缺点
EN

Stack Overflow用户
提问于 2013-02-09 01:28:19
回答 5查看 30.4K关注 0票数 48

我们必须决定在单元测试中使用哪种技术。目前我们使用的是Visual Studio2010,但对随之而来的MSTest并不满意。它有buggy,部署不好(例如,测试设置输出目录不能正确识别),并且在尝试测试32位和64位版本的程序集时有几个问题。更糟糕的是,MSTest没有与我们的Jenkins构建系统很好的阻抗匹配。因此,我们考虑迁移到NUnit。然而,我们团队中没有一个人能很好地接触到NUnit。另外,我们很快就会进入Visual Studio 2012。

我需要知道Visual Studio2012 MSTest与Nunit最新版本的优缺点。由于大多数关于堆栈溢出的文章都与旧版本的VS相关,所以它们与我们无关。我猜微软自2010年以来已经改进了MSTest很多。请提供您在这两种技术中遇到的详细技术问题的公正比较(仅限较新版本的)

EN

回答 5

Stack Overflow用户

发布于 2013-02-13 22:05:04

目前我同时使用MSTest和NUnit。我认为NUnit仍然是一个更好的解决方案。如果你有Visual Studio 2012高级版,那么它实际上是相当不错的,除了你似乎不能将测试分组在一起的事实。我喜欢它被集成到Visual Studio中的事实,但缺乏分组和在不手动选择测试子集的情况下运行测试子集的能力是一个大问题。

覆盖分析在Premium中也相当整洁。它速度很快,很快就能满足你的需求。不过,这是一个高级功能。

由于MSTest中仍然缺少一些特性(甚至是从vs2010开始就被移除的特性),我仍然推荐使用NUnit进行单元测试。好处包括按名称空间对测试进行分组,添加测试用例注释的能力(使用不同的参数多次运行相同的测试),并且它可以很好地与Opencover和Report Generator一起用于覆盖率分析。主要引用的缺点是它不像MSTest那样集成,所以这真的取决于这对你有多重要,这是否是一个缺点。

票数 27
EN

Stack Overflow用户

发布于 2013-08-23 20:51:56

@Biranchi:在Visual Studio 2012 (或更高版本)中使用哪个单元测试框架已经不再重要了。请看我的博文,这是你提到的博文的续篇。http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/20/part-2-using-traits-with-different-test-frameworks-in-the-unit-test-explorer.aspx

你甚至可以混合和匹配来自不同框架的测试,你甚至可以做到方法级别的测试!

这意味着您甚至可以将遗留代码从一个迁移到另一个,而不会有任何负面影响。

另请参阅本文,了解如何使用Nuget将NUnit适配器安装到解决方案中,从而解放开发人员自己安装它。http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/11/part-3-unit-testing-with-traits-and-code-coverage-in-visual-studio-2012-using-the-tfs-build-and-the-new-nuget-adapter-approach.aspx

@Sriwantha:与NUnit相比,MSTest是一个简单的框架。NUnit (以及XUnit)为您提供了更大的灵活性,这也减少了需要编写的代码。一个例子:如果你正在使用类别(你应该这样做),MSTest需要一个类别来装饰每个方法。NUnit允许您修饰类-这将对该类中的所有方法生效。NUnit还允许您使用强类型类别

代码语言:javascript
复制
public class Integration : Category {}

这足以声明一个您可以使用的类别,而不是

代码语言:javascript
复制
Category("Integration");

你冒着拼写错误的风险。

NUnit对数据驱动测试的支持要好得多。NUnit还支持theories

举几个例子。

票数 10
EN

Stack Overflow用户

发布于 2013-05-22 23:47:17

如果您有“更新1”或更高版本,VS2012确实允许将测试分类到组中:http://msdn.microsoft.com/en-us/library/hh270865.aspx#BKMK_Grouping_and_filtering_the_test_list

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14778063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档