`
dingtao
  • 浏览: 56247 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

TestNG系列2:TestNG初接触

阅读更多

首先来看一个非常简单的例子,代码如下:

Java代码 复制代码
  1. import org.testng.annotations.BeforeClass;   
  2. import org.testng.annotations.Test;   
  3.   
  4. public class SimpleTest {   
  5.     @BeforeClass  
  6.     public void setUp() {   
  7.         System.out.println("init()");   
  8.     }   
  9.   
  10.     @Test(groups = { "fast" })   
  11.     public void aFastTest() {   
  12.         System.out.println("Fast test");   
  13.     }   
  14.   
  15.     @Test(groups = { "slow" })   
  16.     public void aSlowTest() {   
  17.         System.out.println("Slow test");   
  18.     }   
  19. }  
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class SimpleTest {
	@BeforeClass
	public void setUp() {
		System.out.println("init()");
	}

	@Test(groups = { "fast" })
	public void aFastTest() {
		System.out.println("Fast test");
	}

	@Test(groups = { "slow" })
	public void aSlowTest() {
		System.out.println("Slow test");
	}
}



在安装有TestNG插件的Eclipse开发环境下,运行结果如下:

引用
init()
Fast test
Slow test
PASSED: aFastTest
PASSED: aSlowTest

===============================================
example1.SimpleTest
Tests run: 2, Failures: 0, Skips: 0
===============================================


===============================================
testNG
Total tests run: 2, Failures: 0, Skips: 0
===============================================


至于红条绿条界面的截图就不截上来的,因为例子比较简单啦。在该例子中setUp()方法会任何的test方法前被调用,这一点和JUnit是一模一样的。

创建一个TestNG测试用例:
1、不需要继承任何类或实现特定的接口

2、虽然上面的例子采用了JUnit的一些特定的习惯,但我们可以为测试的方法起任意的名称,如果你的喜欢的话,因为利用annotations就告诉TestNG哪一些方法就是指定的测试的方法(见代码中的@Test)

3、一个方法可以属于一个或多个group.我们可以任意指定哪一些group的测试方法被触发,如果不指定,默认情况下全部的测试方法都会被执行到.

Java代码 复制代码
  1. 例如下面,我们不在eclipse运行上面的测试用例,首先,写一个ant的执行脚本,类似:   
  2. <project default="test">   
  3.   
  4.  <path id="cp">   
  5.    <pathelement location="lib/testng-testng-4.4-jdk15.jar"/>   
  6.    <pathelement location="build"/>   
  7.  </path>   
  8.   
  9.  <taskdef name="testng" classpathref="cp"  
  10.           classname="org.testng.TestNGAntTask" />   
  11.   
  12.  <target name="test">   
  13.    <testng classpathref="cp" groups="fast">   
  14.      <classfileset dir="build" includes="example1/*.class"/>   
  15.    </testng>   
  16.  </target>   
  17.   
  18. </project>  
例如下面,我们不在eclipse运行上面的测试用例,首先,写一个ant的执行脚本,类似:
<project default="test">

 <path id="cp">
   <pathelement location="lib/testng-testng-4.4-jdk15.jar"/>
   <pathelement location="build"/>
 </path>

 <taskdef name="testng" classpathref="cp"
          classname="org.testng.TestNGAntTask" />

 <target name="test">
   <testng classpathref="cp" groups="fast">
     <classfileset dir="build" includes="example1/*.class"/>
   </testng>
 </target>

</project>


运行结果如下:

引用
c:> ant
Buildfile: build.xml

test:
[testng] Fast test
[testng] ===============================================
[testng] Suite for Command line test
[testng] Total tests run: 1, Failures: 0, Skips: 0
[testng] ===============================================


BUILD SUCCESSFUL
Total time: 4 seconds


这时,我们可以清楚地看到"slow"组的group测试方法就没有被调用,也是group存在的一个原因.

分享到:
评论
1 楼 jacky9692 2008-12-26  
dfdfdfdfdfdfdf

相关推荐

    Addison-Wesley Professional Next Generation Java Testing TestNG and Advanced Concepts

    2. **进阶篇**:深入讲解了TestNG的高级特性,如参数化测试、依赖性测试、数据驱动测试等,帮助读者掌握更复杂的测试场景,提升测试的有效性和覆盖率。 3. **最佳实践与案例研究**:通过实际案例分析,展示了如何在...

    PilarMontes_TestCase_Design_TestNG:webautomationtaller1

    这表明你将接触到Java类、对象、接口等概念,以及如何在Java环境中集成和执行TestNG测试。 在【压缩包子文件的文件名称列表】中,我们只看到"PilarMontes_TestCase_Design_TestNG-main"。这可能是项目的主目录,...

    疫情防疫登记系统源码.zip

    可能还有旅行史、接触史等相关信息,以便于追踪和分析疫情传播风险。 3. **数据存储与管理**:所有收集到的信息需要安全地存储在数据库中,便于后期查询和分析。这涉及到数据库设计和SQL操作。 4. **数据分析与...

    自己用java写的自动化测试软件

    7. **持续集成/持续部署(CI/CD)**: 为了实现持续测试,开发者可能还接触了Jenkins或GitLab CI/CD等工具,它们可以自动运行测试并构建项目,确保每次代码更改后都能快速得到反馈。 8. **日志记录**: 对于调试和问题...

    Java开放源码编程[www.TopSage.com].zip

    2. **JUnit和TestNG**:它们是单元测试框架,用于编写和执行Java代码的测试。JUnit是较早的测试框架,而TestNG则增加了更多特性,如支持多线程测试。 3. **Spring框架**:这是一个全面的企业级应用开发框架,包括...

    基于ssm+web的产品管理系统.zip

    通过这个项目,开发者可以深入理解SSM框架的整合与使用,学习到如何设计和实现一个完整的Web应用程序,同时还能接触到前端开发、数据库设计、权限管理等多个领域知识。对于初学者,这是一个极好的学习实践平台,对于...

    selenium2 的学习材料

    虽然描述中没有直接提供详细信息,但通常一篇关于Selenium2的学习材料博客可能包含以下内容:基础概念介绍、安装步骤、基本用法、API详解、实战示例以及如何与其他工具(如JUnit或TestNG)集成。博主可能还会分享...

    selenium-2.48.2

    **Selenium 2.48.2:自动化测试利器** Selenium是一款强大的开源自动化测试工具,主要用于Web应用程序的测试。Selenium 2.48.2是该框架的一个较早版本,但对初学者来说,它仍然是一个很好的起点,因为它包含了基本...

    ReTeLab2:麻省理工学院2Rendszertervezéslaboratórium1megoldásaim

    【标题】"ReTeLab2:麻省理工学院2Rendszertervezéslaboratórium1megoldásaim" 涉及的是麻省理工学院(MIT)系统设计实验室的第二部分,其中包含了学生对课程项目解决方案的分享。这个项目可能涵盖了软件工程、系统...

    Richardson_javafortesters_myWorkingFiles:IntelliJ 项目通过 Richardson Java For Testers Book 工作

    7. **TestNG**:除了 JUnit,也可能接触到 TestNG,一个更强大的测试框架,支持更多的测试注解和并发测试。 8. **TDD(测试驱动开发)**:学习如何使用 TDD 方法编写测试,先写测试用例再实现功能代码,以保证代码...

    motorola-ftestes-15:2015.1 测试工具课程中使用的附加材料

    该课程可能涵盖了一系列与Java测试相关的主题,包括单元测试、集成测试、性能测试以及自动化测试框架的应用。以下是基于提供的信息,我们可以推测的一些关键知识点: 1. **Java编程基础**:作为标签,Java表明课程...

    JavaAssignment2:CPD4414 - 作业 2

    【JavaAssignment2:CPD4414 - 作业 2】这个项目是针对Java编程语言的第二学期学习任务,通常在大学课程中,这样的作业会涵盖中级到高级的Java编程概念,旨在提升学生的编程技能和对Java特性的理解。在Java-II-Term-...

    CursoTesting费尔南多

    4. **TestNG**: 虽然JUnit是基本的测试框架,但TestNG提供了更高级的功能,如并发测试、参数化测试和灵活的报告。学员可能会接触到这个替代选项。 5. **持续集成(CI)**: 如Jenkins或GitLab CI/CD,课程可能会讨论...

    java4testers

    2. **JUnit**:JUnit是Java中最流行的单元测试框架,它允许开发人员编写针对单个方法或小块代码的测试。对于测试驱动开发(TDD)来说,JUnit是一个不可或缺的工具。测试人员可以利用JUnit确保代码的正确性和可靠性。...

    M2_Practice:M2练习

    1. **基础语法**:在M2实践中,初学者可能会接触到Java的基础语法,如变量、数据类型、控制结构(如if语句、for循环、while循环)、类与对象、方法定义等。这些是编程的基础,理解并熟练掌握它们至关重要。 2. **...

    零基础学Struts 15章源代码

    这一章可能包含如何使用Struts2 TestNG或JUnit插件进行Action类的测试。 9. **最佳实践与性能优化**:最后,你可能会学到一些Struts2的最佳实践,如何避免常见陷阱,以及如何优化Struts2应用程序以提升性能。 以上...

    项目实战一等

    【标题】"项目实战一等"所指的可能是一个Java编程的实践项目,这通常意味着它包含了一系列实际操作的步骤,旨在帮助学习者提升在Java开发中的应用技能。在这个项目中,你可能会遇到如何设计、实现、测试以及优化Java...

    Java自动化测试平台代码备份,支持web,APP和API

    2. 测试用例:每个测试用例通常对应一个单独的Java类,包含了具体的测试方法,用于验证特定的功能或场景。 3. 页面对象模型(Page Object Model):这是一种设计模式,用于组织Web测试的代码,将页面元素和与其相关...

Global site tag (gtag.js) - Google Analytics