Sri*_*ake 48 nunit mstest visual-studio-2012
我们必须决定使用哪种技术进行单元测试.目前我们使用的是Visual Studio 2010,并不满意MSTest.它是错误的,部署较差(例如,无法正确识别测试设置输出目录),并且在尝试测试32位和64位版本的程序集时有几个问题.最糟糕的是,MSTest与我们的Jenkins构建系统没有很好的阻抗匹配.因此我们考虑进入NUnit.但是,我们团队中没有人对NUnit有很好的了解.此外,我们将很快进入Visual Studio 2012.
我需要了解Visual Studio 2012 MSTest与Nunit最新版本的优缺点.由于堆栈溢出的大多数文章都与旧版本的VS相关,因此它们与我们无关.我想微软自2010年以来已经对MSTest做了很多改进.请提供一个与两种技术所面临的细节技术问题的公正比较(仅限新版本)
Mat*_*sch 27
我现在正在使用MSTest和NUnit.恕我直言NUnit仍然是一个更好的解决方案.如果您有Visual Studio 2012 Premium版本,那么它实际上非常好,除了您似乎无法将测试组合在一起这一事实.我喜欢它集成到Visual Studio中的事实,但缺乏分组和运行测试子集而无需手动选择它们的能力是一个巨大的问题.
Premium中的覆盖率分析也非常简洁.它速度快,可以快速满足您的需求.这是一个高级功能.
由于MSTest中仍然缺少功能(甚至自vs2010以来删除了功能),我仍然建议使用NUnit进行单元测试.其优点包括按命名空间进行测试分组,添加测试用例注释的功能(使用不同参数多次运行相同的测试),并且与Opencover和Report Generator进行覆盖分析非常有效.引用的主要内容是它没有像MSTest那样集成,所以它真的取决于你对这是否是一个骗局的重要程度.
Ter*_*røm 10
@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-在-TFS-构建-的-新的NuGet适配器,approach.aspx
@Sriwantha:MSTest是一个比NUnit更简单的框架.NUnit(以及XUnit)为您提供了更大的灵活性,这也减少了编写代码.一个例子:如果你正在使用类别(你应该),MSTest需要一个类别来装饰每个方法.NUnit允许您装饰类 - 这将对该类中的所有方法生效.NUnit还允许您使用强类型类别
public class Integration : Category {}
Run Code Online (Sandbox Code Playgroud)
这足以声明您可以使用的类别而不是
Category("Integration");
Run Code Online (Sandbox Code Playgroud)
你有拼写错误的风险.
NUnit对数据驱动测试有更好的支持.NUnit也支持理论
仅举几例.
归档时间: |
|
查看次数: |
30199 次 |
最近记录: |