`
aben328
  • 浏览: 1457097 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类

TestNG 解决方案

    博客分类:
  • java
阅读更多

TestNG 解决方案

(2008-07-31 10:53:51)

<script> var $tag='testng,junit,java'; var $tag_code='59033f93442eee6bb0a2f775cd64b528'; var $r_quote_bligid='4496839401009vwj'; var $worldcup='0'; var $worldcupball='0'; </script>标签:

testng

junit

java

分类: Java

      TestNG 的测试类是普通的老式 Java 对象;您不需要扩展任何特殊的类,也不需要使用测试方法的任何命名约定:您只要用标注 @Test 通知框架这个类的方法是测试。清单 1 演示了实用类 StringUtils 的一个最简单的测试。它测试 StringUtils 的两个方法: isEmpty() 方法检测 String 是否为空; trim() 方法从 String 两端删除控制字符。请注意,其中使用了 Java 指令 assert 来检测错误情况。


清单 1. 针对类 StringUtils 的一个测试用例

TestNG <wbr>解决方案


 

    但是,在运行测试之前,必须用特殊的 XML 文件配置 TestNG,习惯上把这个文件命名为testng.xml。这个文件的语法非常简单,如清单 2 所示。这个文件首先定义测试套件 My test suite ,这个套件只包含一个测试 First test ,这个测试由 StringUtilsTest 类完成。

 


清单 2. TestNG 的配置文件

TestNG <wbr>解决方案
      

      如果这个示例 testng.xml 文件看起来没什么用处(只有一个测试类),那么好消息是:这实际上是您定义测试套件时 惟一需要编写的文件 。使用 TestNG,所有必需的数据都集中在 testng.xml 文件中。不需要额外的 TestSuite 文件和构建文件。

 

      要运行测试,请用 javac 编译类,然后用以下命令调用 TestNG :

 

java -ea -classpath .;testng.jar;commons-lang-2.0.jar com.beust.testng.TestNG testng.xml

      在这里,选项 -ea 告诉 JVM 处理断言(在断言失败时抛出异常);运行这个例子只需要 testng.jar 和 commons-lang-2.0.jar 这两个库,而 com.beust.testng.TestNG 是 TestNG 的主类。对于所有那些已经非常高兴地忘记了 javajavac 的神秘语法的开发人员来说,还提供了一个有用的 Ant 任务。作为例子,清单 3 演示了本文发布的示例应用程序的 Ant 构建文件。请注意与类com.beust.testng.TestNGAntTask 关联的 testng 任务的定义,以及它在 test 目标中相当简单的用法。

 


清单 3. 带有 TestNG 任务的 Ant 构建文件

TestNG <wbr>解决方案


      如果一切正常,那么应当在控制台中看到测试结果。而且,TestNG 还在当前目录下自动创建了一个叫做 test-output 的文件夹,并在其中创建了一份非常好的 HTML 报告。如果打开该报告并装入 index.html,就可以看到与图 1 中的页面类似的页面。

 

 

图 1. TestNG 创建的 HTML 报告
TestNG 创建的 HTML 报告

 

定义测试组

      TestNG 另外一个有趣的特性是其定义测试组的能力。每个测试方法都可以与一个或多个组相关联,但可以选择只运行某个测试组。要把测试加入测试组,只要把组指定为 @Test 标注的参数:

@Test(groups = {"tests.string"})

      在这个具体的例子中,您声明:标注的方法属于 tests.string 组。因为参数 groups 是一个数组,所以可以指定多个组,组名之间用逗号分隔。例如,在示例应用程序中,您可以为 String 、Number 以及 boolean 创建不同的测试,然后如清单 4 所示配置 TestNG, 有选择地运行它们. 来源:(http://blog.sina.com.cn/s/blog_4496839401009vwj.html ) - TestNG 解决方案_demongeng7_新浪博客

 


清单 4. 带有不同组的配置文件

TestNG <wbr>解决方案
    

      显然,当运行不同的测试组时,HTML 报告能够在单一列表中显示所有测试,也可以在独立的列表中显示每个组的测试,从而能够立即理解问题的来源。

 


配 置方法

      使用 TestNG,不仅可以指定测试方法,还可以用专门的标注 @Configuration 指定类中的其他特定方法,这些方法叫做 配置方法 。配置方法有四种类型:

  • beforeTestClass 方法在类实例化之后,但是在测试方法运行之前执行。
  • afterTestClass 方法在类中的所有测试方法执行之后执行。
  • beforeTestMethod 方法在类中的任何测试方法执行之前执行。
  • afterTestMethod 方法在类中的每个测试方法执行之后执行。

图 2 进一步描述了测试类的生命周期。


图 2. 测试类的生命周期

测试类的生命周期

      清单 5 演示了配置方法的一些示例。请注意,如果您使用组,那么配置方法也必须属于某个组。而且,配置方法的四种类型彼此之间不是互斥的,所以可以把方法定义成同 时属于一种或多种配置方法类型。(作为例子,请参阅清单 5 中的 aroundTestMethods() 方法)。


清单 5. 配置方法示例

TestNG <wbr>解决方案
  

      TestNG 中的配置方法是 JUnit 的 setUp()tearDown() 方法的增强版;它们的主要目的是为测试创建正确的执行上下文,并在测试用例执行之后刷新数据。

 

 

异 常检测

      使用 TestNG,您可以非常简单、非常容易地检测异常的发生。很明显,用 JUnit 也可以做这件事,但是正如您在清单 6 中的示例中所看到的,使用 TestNG 的 @ExpectedExceptions 标注可以使代码编写惊人地容易和简单。 @ExpectedExceptions 标注指明框架能够容忍抛出的 NumberFormatException 异常,所以不应当被当作是故障。要查看在某行代码中是否抛出异常,您可以直接在这行代码之后加入 assert false 语句。这意味着 只有 在指定行中抛出特定类型的异常的时候,您才会通过测试。


清单 6. 用 TestNG 进行异常检测

TestNG <wbr>解决方案


Official Document Link : http://testng.org/doc/documentation-main.html

分享到:
评论

相关推荐

    testng.zip离线安装

    TestNG是一款功能强大的Java测试框架,它扩展了JUnit的功能,为开发者提供了更多高级特性,如支持并发测试、灵活的测试配置...离线安装不仅适用于个人开发,对于那些网络受限的企业环境,也是一项非常实用的解决方案。

    testng-6.9.4和testng-6.8.8.zip

    TestNG是Java编程语言中的一款强大的自动化测试框架,与JUnit和Selenium等工具配合使用,为软件测试提供了全面且灵活的解决方案。TestNG由Cédric Beust创建,旨在提高测试效率并支持更复杂的测试场景,如并发测试、...

    eclipse-testng离线包

    1. **TestNG基础**:TestNG由Cedric Beust创建,设计目标是提供比JUnit更全面的测试解决方案。它支持类、方法、配置方法、数据驱动测试、参数化测试、依赖性测试等多种测试模型。 2. **Eclipse TestNG插件**:该...

    TestNG离线安装文件 site

    TestNG是一种广泛使用的Java测试框架,它为开发者和测试工程师提供了功能强大且灵活的测试解决方案。这个"TestNG离线安装文件site"包含了在没有网络连接的情况下为Eclipse集成TestNG环境所需的所有组件,特别适合...

    testng测试报告模板BeautifulReport.7z

    总而言之,这个压缩包提供了一套完整的解决方案,帮助TestNG用户生成美观且定制化的测试报告,提升测试过程的专业性和效率。通过深入理解和运用这些资源,你可以更好地管理和优化你的测试框架,确保测试过程的透明度...

    单元测试框架-TestNG-的eclipse插件

    JUnit 框架是 Java 语言单元测试当前的一站式解决方案。这个框架值得称赞,因为它把测试驱动的开发思想介绍给 Java 开发人员并教给他们如何有效地编写单元测试。但是,在过去的几年中,JUnit 的改进不大;所以,为...

    maven+testng+extenreport项目

    总结来说,"maven+testng+extenreport项目"是自动化测试领域的一个典型实践,它利用Maven进行项目管理,通过TestNG编写测试用例,借助ExtendReport生成美观的测试报告,为企业级项目提供了一套完整的测试解决方案。

    TestNg 官网下载源文件

    它由著名测试框架JUnit的前核心开发者Selenium的主要作者Cedric Beust创建,旨在提供更全面、灵活和可扩展的测试解决方案。TestNG官网提供了不同版本的下载源文件,以满足不同用户的需求,包括适用于Eclipse IDE的...

    testng-6.1.jar下载

    TestNG由Cedric Beust创建,它的设计目标是提供一种更加灵活和强大的自动化测试解决方案。相比于JUnit,TestNG引入了以下几个主要优势: 1. **并行测试**:TestNG支持在同一时刻运行多个测试,这大大提高了测试的...

    testng 官方文档中文翻译

    TestNG 是一个强大的自动化测试框架,它在Java领域被广泛使用,为开发人员和测试工程师提供了灵活、功能丰富的测试解决方案。相较于JUnit,TestNG引入了许多先进的特性,使其更适合大规模的测试项目。 TestNG的核心...

    myeclipse2017 TestNg6.15插件

    它是由Cédric Beust创建的,作为JUnit的增强版本,旨在提供更全面、更灵活的测试解决方案。TestNG 6.15是该框架的一个特定版本,带来了诸多改进和特性。 首先,TestNG的核心优势在于其支持多种测试类型,包括单元...

    TestNG中文手册学习笔记

    TestNG 的设计目标是为企业级应用提供更健壮和可靠的测试解决方案。 本教程的目标读者是希望学习 TestNG 的软件专业人员,要求读者具备基本的 Java 编程知识、文本编辑器的使用经验以及对软件开发和测试流程的理解...

    TestNG demo代码

    TestNG是一款功能强大的Java测试框架,它为开发者提供了更加灵活和功能丰富的测试解决方案。与JUnit相比,TestNG引入了许多先进的特性,使得自动化测试变得更加高效和可靠。本示例中的"TestNG demo代码"很可能是为了...

    单元测试TestNG工具(jar)

    总的来说,TestNG为Java开发者提供了一个全面的测试解决方案,通过与Eclipse IDE的集成,它极大地提高了测试的效率和质量。无论是简单的单元测试还是复杂的集成测试,TestNG都能胜任,并且其丰富的功能和良好的可...

    testng 5.12.1

    总的来说,TestNG 5.12.1版本为Java开发提供了全面的测试工具箱,无论你是新手还是经验丰富的开发者,都能从中找到适合你的测试解决方案。通过熟练掌握TestNG,你不仅可以提高代码质量,还能提升软件开发的效率和...

    TestNg插件

    总的来说,TestNG插件结合TestNG框架,为Java开发人员提供了一套完整的测试解决方案,有助于提升测试的质量和效率,确保软件产品的可靠性。通过利用其丰富的特性和功能,开发者能够更专注于测试逻辑,而非测试工具的...

    testng 6.8.8

    TestNG 是一个强大的开源测试框架,专为Java 设计,由Cedric Beust 创建,其版本6.8.8 提供了丰富的功能和改进,旨在提高自动化测试的...通过深入理解和熟练运用,你可以构建出更加健壮和可维护的自动化测试解决方案。

    TestNG教程

    总之,TestNG为Java开发者提供了一个强大而灵活的测试框架,通过深入学习和实践,可以帮助我们构建更加健壮、高效的自动化测试解决方案。这份"TestNG教程@www.java1234.com.pdf"文档将详尽阐述上述内容,对于想要...

    Maven+Selenium+TestNG+TestNG-xslt实现数据驱动测试框架

    总的来说,这个框架结合了Maven的项目管理、Selenium的Web自动化、TestNG的高级测试功能和数据驱动测试的理念,构建了一个强大且灵活的自动化测试解决方案。通过这样的框架,开发者可以高效地编写和维护测试用例,...

Global site tag (gtag.js) - Google Analytics