TestNG基本注解(注释)【转】

统的方式来表示JUnit3中的测试方法是测试自己的名字前缀。标记一个类中的某些方法,具有特殊的意义,这是一个非常有效的方法,但命名不很好的扩展(如果我们想添加更多标签为不同的框架?),而非缺乏灵活性(如果我们要通过额外的参数测试框架)。

注释被正式加入到JDK 5中的Java语言和TestNG作出选择使用注释注释测试类。

这里是TestNG的支持列表中的注解:

注解 描述
@BeforeSuite 注解的方法将只运行一次,运行所有测试前此套件中。
@AfterSuite 注解的方法将只运行一次此套件中的所有测试都运行之后。
@BeforeClass 注解的方法将只运行一次先行先试在当前类中的方法调用。
@AfterClass 注解的方法将只运行一次后已经运行在当前类中的所有测试方法。
@BeforeTest 注解的方法将被运行之前的任何测试方法属于内部类的 <test>标签的运行。
@AfterTest 注解的方法将被运行后,所有的测试方法,属于内部类的<test>标签的运行。
@BeforeGroups 组的列表,这种配置方法将之前运行。此方法是保证在运行属于任何这些组第一个测试方法,该方法被调用。
@AfterGroups 组的名单,这种配置方法后,将运行。此方法是保证运行后不久,最后的测试方法,该方法属于任何这些组被调用。
@BeforeMethod 注解的方法将每个测试方法之前运行。
@AfterMethod 被注释的方法将被运行后,每个测试方法。
@DataProvider
标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。

该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。

@Factory 作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。
@Listeners 定义一个测试类的监听器。
@Parameters 介绍如何将参数传递给@Test方法。
@Test 标记一个类或方法作为测试的一部分。

使用注释的好处

以下是一些使用注释的好处:

  • TestNG的标识的方法关心寻找注解。因此,方法名并不限于任何模式或格式。
  • 我们可以通过额外的参数注解。
  • 注释是强类型的,所以编译器将标记任何错误。
  • 测试类不再需要任何东西(如测试案例,在JUnit3)扩展

------------------------------------------------------------------------------------------------------------------------------------------------

本教程介绍了TestNG中执行程序的方法,这意味着该方法被称为第一和一个接着。下面是执行程序的TestNG测试API的方法的例子。

创建一个Java类文件名TestngAnnotation.java在C:\>TestNG_WORKSPACE测试注解。

import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.AfterSuite;

public class TestngAnnotation {
	// test case 1
	@Test
	public void testCase1() {
		System.out.println("in test case 1");
	}

	// test case 2
	@Test
	public void testCase2() {
		System.out.println("in test case 2");
	}

	@BeforeMethod
	public void beforeMethod() {
		System.out.println("in beforeMethod");
	}

	@AfterMethod
	public void afterMethod() {
		System.out.println("in afterMethod");
	}

	@BeforeClass
	public void beforeClass() {
		System.out.println("in beforeClass");
	}

	@AfterClass
	public void afterClass() {
		System.out.println("in afterClass");
	}

	@BeforeTest
	public void beforeTest() {
		System.out.println("in beforeTest");
	}

	@AfterTest
	public void afterTest() {
		System.out.println("in afterTest");
	}

	@BeforeSuite
	public void beforeSuite() {
		System.out.println("in beforeSuite");
	}

	@AfterSuite
	public void afterSuite() {
		System.out.println("in afterSuite");
	}

}

接下来,让我们创建的文件 testng.xml 在 C:\ > TestNG_WORKSPACE 执行注解。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
  <test name="test1">
    <classes>
       <class name="TestngAnnotation"/>
    </classes>
  </test>
</suite>

编译使用javac测试用例类。

C:\TestNG_WORKSPACE>javac TestngAnnotation.java

现在运行testng.xml,将运行提供的测试用例类中定义的测试用例。

C:\TestNG_WORKSPACE>java org.testng.TestNG testng.xml

验证输出。

in beforeSuite
in beforeTest
in beforeClass
in beforeMethod
in test case 1
in afterMethod
in beforeMethod
in test case 2
in afterMethod
in afterClass
in afterTest
in afterSuite

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

见上面的输出,TestNG是执行过程如下:

  • 首先所有beforeSuite()方法只执行一次。
  • 最后,afterSuite的()方法只执行一次。
  • 即使方法 beforeTest(), beforeClass(), afterClass() 和afterTest() 方法只执行一次。
  • beforeMethod()方法执行每个测试用例,但在此之前执行的测试用例。
  • afterMethod()方法执行每个测试用例,但测试用例执行后。
  • In between beforeMethod() and afterMethod() each test case executes.
时间: 2024-08-05 10:15:19

TestNG基本注解(注释)【转】的相关文章

TestNG基本注解(注释)

传统的方式来表示JUnit 3中的测试方法是测试自己的名字前缀.标记一个类中的某些方法,具有特殊的意义,这是一个非常有效的方法,但命名不很好的扩展(如果我们想添加更多标签为不同的框架?),而非缺乏灵活性(如果我们要通过额外的参数测试框架).注释被正式加入到JDK 5中的Java语言和TestNG作出选择使用注释注释测试类.这里是TestNG的支持列表中的注解:注解 描述@BeforeSuite 注解的方法将只运行一次,运行所有测试前此套件中.@AfterSuite 注解的方法将只运行一次此套件中

TestNG基本注解(一)

TestNG基本注解 注解 描述 @BeforeSuite 注解的方法将只运行一次,运行所有测试前此套件中. @AfterSuite 注解的方法将只运行一次此套件中的所有测试都运行之后. @BeforeClass 注解的方法将只运行一次先行先试在当前类中的方法调用. @AfterClass 注解的方法将只运行一次后已经运行在当前类中的所有测试方法. @BeforeTest 注解的方法将被运行之前的任何测试方法属于内部类的 <test>标签的运行. @AfterTest 注解的方法将被运行后,所

TestNG配置注解

以下是TestNG支持的注释列表: 注解 描述 @BeforeSuite 在该套件的所有测试都运行在注释的方法之前,仅运行一次. @AfterSuite 在该套件的所有测试都运行在注释方法之后,仅运行一次. @BeforeClass 在调用当前类的第一个测试方法之前运行,注释方法仅运行一次. @AfterClass 在调用当前类的第一个测试方法之后运行,注释方法仅运行一次 @BeforeTest 注释的方法将在属于<test>标签内的类的所有测试方法运行之前运行. @AfterTest 注释的

TestNG基本注解(二)

1. Before类别和After类别注解 @BeforeSuite @AfterSuite @BeforeTest @AfterTest @BeforeClass @AfterClass @BeforeMethod @AfterMethod 上述的注解分为Before类别和After类,我们可以在Before类别的注解方法里面做一些初始化动作,如实例化数据库连接.新建数据库连接池.创建线程池.打开文件流等等.然后,我们可以在After类别的注解方法里面做一些销毁动作,如释放数据库连接.销毁数据

【幻化万千戏红尘】qianfengDay30-正则表达式、注解注释基础学习:

课程回顾:JSON:符合一定规则的字符串 解析方法:JSONGsonFASTJSON 今日内容:正则表达式:规则表达式语法规则:. 通配符,可以表示任意字符* 任意个字符,[0,n]+ 至少1个? 最多1个{n} 恰好n个{n,} 最少n个  {n,m} 最少n个最多m个[0-9] 任意一个数字[A-Za-z] 任意一个字母[a-c[N-Q]] a-c或N-Q 并集[A-D&&[C-F]] C或D 交集[^abc] 除了abc以外的字符\w 等价---[A-Za-z-0-9_]\W 非--

spring mvc @ResponseStatus 注解 注释返回中文乱码的问题

前言 前文中讲到,使用@ResponseStatus注解,可以修饰一个异常类,在发生异常的时候返回指定的错误码和消息,在返回的 reason中包含中文的时候,就会出现中文乱码的问题 现象 reason中包含中文的时候,前端返回为乱码 /** * 自定义异常类 * * @author Administrator * */ @ResponseStatus(value = HttpStatus.FORBIDDEN, reason = "没有权限") public class TestExce

三、TestNG 数据驱动注解,可配合Grid支持多node机器,多浏览器同时运行脚本

public class GridTest2 { / 设置数据驱动数据 / @DataProvider(name = "data_1") public Object[][] test1(){ return new Object[][]{ {"firefox","http://192.168.1.105:8888"}, {"chrom","http://192.168.1.105:5555"} }; } /*

Java千百问_03基础语法(020)_注解、注释有什么区别

java注释注解×注释注解区别×注释注解混淆×java注释注解区别×注解与注释不同点× 点击进入_更多_Java千百问 1.注解.注释有什么区别 了解注释看这里:注释是什么 了解注解看这里:注解是什么 注解和注释很多人会混淆,它们之间的应用场景和具体使用完全不同,具体如下: 用途不同 注解通过标注包.类.字段.方法.局部变量.方法参数等元素,告诉JVM这些元素的附加信息(元信息). 注释是用来告诉开发人员这段代码的逻辑.说明.特点等,可以无限制的自由发挥. 具体使用不同 注解通过@来标注响应的元

TestNg注解使用

1.TestNG常用注解 @Test 标记一个类或方法作为测试的一部分 @BeforeMethod 注解的方法将在每个测试方法运行之前运行 @AfterMethod 注解的方法将在每个测试方法运行之后运行 @BeforeClass 注解的方法将只运行一次,在当前类中所有方法运行之前调用 @AfterClass 注解的方法将只运行一次,在当前类中所有方法运行之后调用 @BeforeSuite 标记的方法:在某个测试套件(suite)开始之前运行 @AfterSuite标记的方法:在某个测试套件(s