①TestNG 与 JUnit 测试框架

一、TestNG与JUnit的不同点:
JUnit

1、JUnit只能进行单元测试
2、JUnit只能使用IDE运行
3、测试套件运行失败,JUnit 4会重新运行整个测试套件

TestNG

1、TestNG可以做单元、功能、端到端(e2e test)、集成测试等。
2、TestNG需要xml配置文件,配置测试的class、method甚至package。
3、TestNG的运行方式有:命令行、ant和IDE
4、TestNG的annotation更丰富,如@ExpectedExceptions、@DataProvider等。
5、TestNG运行失败时,会创建一个XML文件说明失败的测试,利用这个文件执行程序,就不会重复运行已经成功的测试。

二、TestNG比JUnit 4灵活性的体现:

1、JUnit 4中要求@BeforeClass、@AfterClass方法声明为public static,这就限制了该方法中使用的变量必须是static。而TestNG中@BeforeClass修饰的方法可以跟普通函数完全一样。

2、JUnit 4依赖性非常强,测试用例间有严格的先后顺序。前一个测试不成功,后续所有的依赖测试都会失败。TestNG 利用@Test 的dependsOnMethods属性来应对测试依赖性问题。某方法依赖的方法失败,它将被跳过,而不是标记为失败。

3、对于n个不同参数组合的测试,JUnit 4要写n个测试用例。每个测试用例完成的任务基本是相同的,只是方法的参数有所改变。TestNG的参数化测试只需要一个测试用例,然后把所需要的参数加到TestNG的xml配置文件中。这样的好处是参数与测试代码分离,非程序员也可以修改参数,同时修改无需重新编译测试代码。

4、为了测试无法用String或原语值表示的复杂参数化类型,TestNG提供的@DataProvider使它们映射到某个测试方法。

5、JUnit 4的测试结果通过Green/Red bar体现,TestNG的结果除了Green/Red bar,还有Console窗口和test-output文件夹,对测试结果的描述更加详细,方便定位错误。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 感谢原作者的奉献,原作者博客地址:http://blog.csdn.net/zhu_ai_xin_520/arti...
    狼孩阅读 14,780评论 1 35
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,397评论 19 139
  • 简介 测试 在软件开发中是一个很重要的方面,良好的测试可以在很大程度决定一个应用的命运。软件测试中,主要有3大种类...
    Whyn阅读 11,109评论 0 2
  • 本文章转载于搜狗测试 TestNG介绍 TestNG意为test next generation,是Java中的一...
    夜境阅读 6,266评论 0 1
  • 我想每个女生最抵制不了的便是甜品的诱惑了,我也不例外,每一口都仿佛融化了所有了烦恼,剩下的便是所有好心情啦。 希望...
    如磨如啄阅读 5,183评论 0 2