TESTNG&&JUNIT4对比

特性或指标

TESTNG

JUINT4

1. 测试是否支持(Annotations)

YES

YES

2.框架依赖程度

不需要扩展特定的基类和实现特定的方法

不需要扩展特定的基类和实现特定的方法

3.灵活性

同样支持Before,After方法,TestNG更为灵活,支持各种签名方式,

private,protected

同样也支持BeforeClass AfterClass,只执行一次的方法,但是可以不需要使用static签名

支持Before,After方法

支持BeforeClass AfterClass

4.依赖性测试

利用 Test 注释的 dependsOnMethods 属性来应对测试的依赖性问题。有了这个便利的特性,就可以轻松指定依赖方法。

难确定测试用例执行的顺序

5.失败和重运行

一旦 TestNG 中出现失败,它就会创建一个 XML 配置文件,对失败的测试加以说明。如果利用这个文件执行 TestNG 运行程序,TestNG 就只运行失败的测试。这样可以快速定位出错方法,并且节约大量的时间。

失败文件,一般命名为testng-failed.xml,以后只需要运行此文件就可以了。

如果测试套件包括 N 项测试,其中 M(M<=N) 项失败,很可能就会迫使您重新运行整个测试套件(修改错误以后)。这样的工作会耗费掉大量的时间。

6.参数化测试

TestNG 提供了开箱即用的类似特性。通过在 TestNG XML 配置文件中放入参数化数据,就可以对不同的数据集重用同一个测试用例,甚至有可能会得到不同的结果。

支持@DataProvider 注释可以方便地把复杂参数类型映射到某个测试方法。

如果您想改变某个受测方法的参数组,就只能给每个 不同的参数组编写一个测试用例。多数情况下,这不会带来太多麻烦。出现大量的重复测试代码。

7测试分组

支持

不支持

8多线程测试

TestNG对多线程测试的支持良好,只需要配置即可。

JUnit中要想进行多线程测试比较麻烦,需要其它模块。

设计 JUnit 的目的是侧重点分析代码单元,而 TestNG 的预期用途则针对高级测试。



------君临天下,舍我其谁------