盛兴-JUnit vs TestNG - 你应该选择哪个测试框架?

在均衡的开发团队中,盛兴彩票测试是软件发布周期中不可分割的一部分。并不总是这样。单元测试,集成测试,系统测试和其他并不总是存在。今天,我们很幸运能够在一个时间地点进行测试,并为大多数利益相关者所知。

在这篇文章中,我们将测试放在中心,并通过JUnit和TestNG的眼光来探索Java测试,同时比较它们的主要特性和用例。

非常感谢OverOps的测试自动化工程师Sasson Shmuel在写这篇文章时给予的帮助。

所以......给定一个干净的石板,你会选择什么?

毫无疑问,JUnit和TestNG是最流行的测试框架。事实上,盛兴彩票当我们查看GitHub的顶级Java项目使用的库时。

在62%的项目中,JUnit排名第一,TestNG排名第二,达到6%。表明使用JUnit与3,873用途摇摆人气排行榜的#1与42484层的用途,和TestNG在#15相似的结果。这也是因为在许多Maven原型中默认添加了JUnit。

版本和一些最近的历史

最新的JUnit版本是2014年12月发布的4.12版本,预计2016年底将达到GA版本。这很快就会实现,我们也希望它成为会议中的热门话题。

JUnit一直是采用Test Driven Development的驱动程序之一,最初由2013年,火炬传递给了。

一个早期的JUnit 5版本已经可以供你使用,你也可以为它在开发作出贡献一个有趣的事实是,通过使新版本的开发成为可能

至于由创建的TestNG,本文撰写时的最新版本是2015年12月的6.9.10。盛兴彩票它在JUnit 3还在时间之前首次出现,并提供了不存在的新功能这是一个专注于更广泛的测试用例的设计。其中一些功能,如使用注释,已添加到JUnit 4中,这是我们在此着重介绍的版本,展望即将推出的JUnit 5版本。

TestNG和JUnit都基于与Java断言类似的行为,后者在Java 4中加入。我们可以直接使用断言,所以......为什么还要使用测试框架?

从简单的Java断言开始就很容易受到诱惑,但随着项目的发展,测试很快变得不平凡,使用框架进行管理很有意义。此外,学习曲线非常快,主要概念简单而强大。JUnit代码库非常轻巧,Martin Fowler的着名引用如下:

“从来没有在软件开发领域有那么多的代码被这么少的代码所吸引”

JUnit和TestNG都遵循惯例,但我们在这里强调了几个区别。组,并行,参数化测试和依赖关系:

TestNG为JUnit中提供的附加注释提供附加注释。最值得注意的是能够在测试用例组之前/之后运行代码。此外,单个测试可以属于多个组,然后在不同的上下文中运行(如慢速或快速测试)。它实际上是测试用例和测试套件之间的另一层:

存在类似的功能,但缺少允许初始化测试/拆除测试的@BeforeGroups / @AfterGroups TestNG注释。顺便说一句,看起来像JUnit 5将不赞成类别和引入一个新的概念,将被称为标签:

含义,3个线程和9个相同测试的调用。如果您在TestNG的XML盛兴彩票运行配置中指定它,也可以并行运行整个套件。使用JUnit时,您必须编写自定义的runner方法,并多次提供相同的测试参数。这将我们带到下一个要点。

这是将不同的测试输入提供给TestNG和JUnit解决的相同测试用例的问题,但是使用了不同的方法。基本思想是一样的,创建一个包含参数的2D数组Object [] []。

但是,除了通过代码提供参数外,盛兴彩票TestNG @DataProvider还可以支持用于提供数据,CSV或纯文本文件的XML。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.gdjxjy.com.cn/a/shengxing/201.html