`

junit4 与 nextng的区别(表格为引用内容)

 
阅读更多

以下是对 两个测试框架的详细对比。其中要特别说明的是,在很多资料上说JUnit4 不支持参数化测试,这种说法我认为是不准确的,JUnit4支持参数化测试,只是在一个测试用例中,只能有一个标记了@Parameters注释的方法对参数进行批量设置。所以Junit4 只能给每个 不同的参数组编写一个测试用例

 

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 的预期用途则针对高级测试。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics