首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >2013年MSTest对nUnit对xUnit

2013年MSTest对nUnit对xUnit
EN

Stack Overflow用户
提问于 2016-06-27 13:59:59
回答 4查看 14.4K关注 0票数 16

我意识到有很多关于这个话题的问题,但不知怎么的,我没有找到一个能满足我的需求。

我的团队正在寻找开始自动单元测试我们的应用程序。我们从来没有这样做过,而且球队中没有人对此有丰富的经验。我被要求研究和找到一个框架来自动化我们的单元测试。到目前为止,我已经把选择范围缩小到了MSTest、NUnit和xUnit

在互联网上,我看到了关于MSTest的负面评论,但对我们来说,这似乎是最方便的工具。

1)我们的应用程序是.NET

2)我们在整个团队的开发中使用了许可的VS IDE。

3)源代码管理是2010

4)我们计划将CI/CD集成作为软件交付过程的一部分。

我觉得MSTest集成到这个设置中,并为我们提供了最干净的界面。与我们应该考虑的NUnitxUnit相比MSTest是否有显著的优势?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-06-27 15:44:56

我有偏见,因为我在NUnit上工作,但NUnit或xUnit的优点是,这两个框架都提供了更多的功能,比如数据驱动测试、并行执行和许多高级特性。

尽管如此,MSTest并没有什么问题,特别是如果您的团队在单元测试方面缺乏经验的话。它与Visual和TFS很好地集成在一起,所以添加测试是相当无痛的。NUnit和xUnit都集成得很好,但它们可能需要更多的设置。

继续,从MSTest开始。这是一个简单的单元测试入门。如果您开始遇到MSTest的一些限制,那么向NUnit或xUnit的迁移是相当容易的。对于简单的情况,只需更改NuGet包,然后查找/替换属性即可。

当谈到在xUnit和NUnit之间进行选择时,两者都是很好的选择,但每一个都有不同的哲学。NUnit倾向于更灵活,允许一系列测试样式,并且可以用于集成测试。然而,它是足够灵活的,允许你射击自己的脚,并允许你写的纯粹主义者会皱眉的测试。NUnit把选择留给你。

然而,xUnit倾向于更加固执己见,并通过单元测试将您推向“成功的深渊”。在我的经验中,它对于绿色领域项目是很好的,但是它可以使一些架构较差的褐色字段项目在不进行重构的情况下很难进行测试。

最后,这些测试框架都不会出错。

票数 31
EN

Stack Overflow用户

发布于 2016-11-07 09:27:39

我想补充一下XUnit的一个负面方面。它甚至没有基本的文档,除了“开始”之外,什么都没有。没有API什么都没有。

票数 11
EN

Stack Overflow用户

发布于 2017-06-06 01:58:05

以下是对这三个框架的简要分析,并按颜色排列。

色彩传奇:

MSTest它之所以好,只是因为它很简单,并且集成到Visual中,而且它来自微软。它不够灵活,也不能很好地扩展。但不仅仅是一个单元测试框架,它还支持集成测试、Web (load)性能测试。另外两个是纯单元测试框架。所以我会说MSTest是“全行业的杰克,没有人的主人”。

NUnit是我的选择,因为它一直以来都是最好的。它更灵活和简单,有很好的用户基础,文档和社区支持。

XUnit是我最不喜欢的,因为它的风格略有不同,我个人认为它并不比NUnit更有优势。在某些情况下,您需要对代码进行一些重构,以适应测试用例。但这只是我的观点,因为有很多人更喜欢XUnit。

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

https://stackoverflow.com/questions/38063903

复制
相关文章
C++函数值与参数 | 函数实现比较大小
主调函数和被调函数之间是有数据传递关系的,在调用函数时,函数是带参数的,参数分为形式参数和实际参数
小林C语言
2020/11/30
1.4K0
C++函数值与参数 | 函数实现比较大小
如何在CentOS 8 修改时区,同步时间
例如: cron 守护程序使用系统的时区执行 cron 作业,日志文件中的时间戳基于同一系统的时区。
冬冬i
2022/04/09
3.4K0
如何在 CentOS 8 设置或者修改时区
使用正确的时区对于很多系统相关的任务和进程都是基本的必要的。例如:cron 守护程序使用系统时区来执行 cron 任务,并且日志文件中的时间戳也是基于系统时区的。
雪梦科技
2020/05/11
7.4K0
如何在 CentOS 8 设置或者修改时区
QT之Qml使用QSystemTrayIcon实现系统托盘
 QT中实现这一功能使用QSystemTrayIcon,它为应用程序在系统托盘中提供一个图标。现代操作系统通常在桌面上提供一个特殊区域,称为系统托盘或通知区域,长时间运行的应用程序可以在其中显示图标和短消息。
杨永贞
2022/05/11
2.8K0
QT之Qml使用QSystemTrayIcon实现系统托盘
如何在 Debian 10 设置或者修改时区
使用正确的时区对于很多系统相关的任务和进程都是基本的必要的。例如:cron 守护程序使用系统时区来执行 cron 任务,并且日志文件中的时间戳也是基于系统时区的。
雪梦科技
2020/05/11
12.6K0
如何在 Debian 10 设置或者修改时区
函数模板之compare比较大小—C++
/* 功能:编写一个函数模版compare 作者:wind 日期:2013-12-11 */ #include <iostream> using namespace std; template<typename T> bool Compare(T a,T b) { if (a==b) { return true; } else { return false; } } int main(void) { system("pause"); return 0; }
WindCoder
2018/09/19
1.6K0
如何在CentOS 8上设置或更改时区
对于许多与系统相关的任务和过程,使用正确的时区至关重要。 例如,cron守护程序使用系统的时区执行cron作业,而日志文件中的时间戳基于同一系统的时区。
用户5005176
2021/08/10
1.7K0
如何在 Ubuntu 20.04 上设置或者修改时区
使用正确的时区,对于系统相关的任务和进程来说,是最基本的。例如,cron 守护进程,使用系统时区来执行定时任务,并且在日志中的时间戳也是基于相同的系统时区。
雪梦科技
2020/05/09
28.4K0
如何在 Ubuntu 20.04 上设置或者修改时区
如何在 Ubuntu 20.04 上设置或者修改时区
本文最先发布在:https://www.itcoder.tech/posts/how-to-set-or-change-timezone-on-ubuntu-20-04/
雪梦科技
2020/05/07
5K1
如何在 Ubuntu 20.04 上设置或者修改时区
函数与触发器
在mysql里支持很多的函数,函数就如java的方法一般,都会有一个返回值,函数帮助我们完成sql语句无法做到的事情,而且数据库是可以进行数据库编程的,所以也会有流程控制语句,不过一般来讲程序员不需要使用到那么复杂的函数组合和流程控制语句。那些都是DBA数据库管理员需要干的事情,程序员只需要了解掌握一些必须和经常使用的函数和控制语句即可。
端碗吹水
2022/01/12
8960
函数与触发器
UITextView 手势触发 TouchesBegan 函数
前几天做了个手势可以改变文章字体大小的功能。开始,在当前view中添加一个UITextView ,然后添加- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event函数,可怎么也触发不了,在网上找了些资料,说得也不是很清楚,今天把它总结下。
全栈程序员站长
2022/09/16
1.3K0
记录C++遗忘项
extern那些事 extern "C" 是放在.cpp文件中,而不是放在.c中,不然会有编译错误。放在.c的情况都是加上了#ifdef __cplusplus#endif即用来识别当前文件用C++进行编译,所以才不会报错。 static那些事 静态成员变量未赋值的存放在bss段,赋值过就放在data段. 类的静态数据成员如成员函数或者成员变量,不依赖于类对象本身,即类中的静态数据成员由对象共享。因此静态变量不能使用构造函数初始化;静态函数仅能访问静态数据或静态成员函数。 静态类对象和静态对象(变量)一样,
Rock_Lee
2021/01/13
6100
如何在 Linux 中查看目录大小?
这是一篇关于如何通过一些常用的命令,显示 CentOS 或 RedHat 中的 Linux 目录大小,以及哪些文件夹占用的空间最大的教程。
章鱼猫先生
2021/10/15
13.1K0
如何在 Linux 中查看目录大小?
C++类大小的计算
可以看到,类实例化的对象的大小为1。这是因为即使类是空白类,编译器也会分配一个字节的空间来占位,用来和真正的空白/空变量区别开来(毕竟实例化其实就是分配一定的内存空间,如果没有分配空间,那么就和没有实例化差不多了)。不过注意的是,如果空白类作为基类被继承了的话,是不会对继承它的类的空间产生影响的,即在继承的一瞬间,基类大小变为0,而继承它的类的大小只与自己的成员变量有关(此处默认为单一继承):
太阳影的社区
2021/10/15
1.1K0
fstream 获取文件大小_c++获取文件大小
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/04
6.4K0
如何使用几何画板画函数图像,如极坐标函数图像?
1、点击[绘图] 2、点击[网格样式] 3、点击[极坐标网格] 4、点击[绘图] 5、点击[绘制新函数] 6、点击[3] 7、点击[函数] 8、点击[cos] 9、点击[θ] 10、点击[确定] 11、点击[是]
裴来凡
2022/05/28
1.3K0
如何使用几何画板画函数图像,如极坐标函数图像?
zabbix触发器和监控项设置监控时间范围
比如现在配置在晚上十二点到凌晨一点半的时候触发。 创建一个触发器,选中一个你要是用的监控项比如我这里的监控项X,点击表达式构造器。
我是李超人
2020/08/20
1.6K0
Python函数大小的权衡
有人说函数应该尽可能简短,不要超过一屏能容纳的长度。与长达几百行的函数相比,只有十几行的函数确实比较容易理解,但将大函数拆分成多个小函数也有缺点。下面我们来具体看下,在实际工作中,如何权衡大小函数。
TalkPython
2022/11/21
3410
atof函数_log函数怎么比较大小
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/01
4200
点击加载更多

相似问题

每个设备许可的Nook

12

访问Nook上的存储

21

如何获取nook simple touch的设备id?

25

映射外部存储设备

113

谷歌在Kindle和Nook设备上的应用内计费

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文