testng入门教程3用TestNG执行case的顺序
本教程介绍了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.
使用注释
传统的方式来表示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)扩展。
文章转载自:易百教程 [http://www.yiibai.com]
本文标题:TestNG执行程序
转载请保留原文链接:http://www.yiibai.com/html/testng/2013/0914296.html
testng入门教程3用TestNG执行case的顺序的更多相关文章
- testng入门教程4用TestNG执行case
使用TestNG类执行测试用例.这个类的主入口点在TestNG的框架运行测试.用户可以创建自己的TestNG的对象,并调用它以许多不同的方式: 在现有的testng.xml 合成testng.xml, ...
- testng入门教程2用TestNG编写测试及执行测试
编写TestNG测试基本上包括以下步骤: 测试和编写业务逻辑,在代码中插入TestNG的注解.. 添加一个testng.xml文件或build.xml中在测试信息(例如类名,您想要运行的组,等..) ...
- testng入门教程1在testng运行一个简单的testcase
在eclips运行java,创建一个Java类文件名TestNGSimpleTest C:\ > TestNG_WORKSPACE import org.testng.annotations. ...
- testng入门教程12 TestNG执行多线程测试
testng入门教程 TestNG执行多线程测试 testng入门教程 TestNG执行多线程测试 并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者 ...
- testng入门教程16数据驱动(把数据写在xml)
testng入门教程16数据驱动(把数据写在xml) testng入门教程16数据驱动(把数据写在xml)把数据写在xml文件里面,在xml文件右键选择runas---testng执行 下面是case ...
- TestNG 入门教程【转】
TestNG 入门教程[转] 国庆7天假期,大部分朋友都出去旅游了,微信圈里全是晒旅游的照片, 东南亚游,欧洲游呀,真是羡慕呀. 悲惨的我只去了上海野生动物园, 在家休息,利用这段假期,把之前学过的东 ...
- TestNG 入门教程
原文出处:http://www.cnblogs.com/TankXiao/p/3888070.html 阅读目录 TestNG介绍 在Eclipse中在线安装TestNG 在Eclipse中离线安装T ...
- TestNG入门教程
阅读目录 TestNG介绍 在Eclipse中在线安装TestNG 在Eclipse中离线安装Testng TestNG最简单的测试 TestNG的基本注解 TestNG中如何执行测试 使用testt ...
- TestNG入门教程-12-Java代码执行testng.xml和失败后重跑
前面我们都在IDEA上右键testng.xml文件来运行testng用例,这个在编写测试用例过程是 可以这么做,但是,如果测试用例写完了,也是这么做吗?有没有什么方法,例如自动化去实现.测试脚本维护后 ...
随机推荐
- css3整理--gradient
gradient语法: -moz-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, & ...
- Android 全屏Activity以透明的对话框形式弹出
1. styles.xml <style name="transcutestyle" parent="@android:style/Theme.DeviceDefa ...
- [转]Linux sendmail 详解
Internet上最基本的服务,现在应该大部分人都有自己的邮箱吧,用的人多,但理解的人估计没多少,我自己以前也是常常用,但对其原理并不操心.今天就来操心下,进行个小总结 一.邮件服务的基本流程 ...
- Linux上的ftp服务器vsftpd之配置满天飞--设置匿名用户访问(不弹出用户名密码框)以及其他用户可正常上传
一.问题背景 没事谁折腾这鬼玩意哦...还不是因为bug. 我们的应用,用户头像是存在ftp上的.之前的ftp服务器是一台windows,我们后台服务器程序收到用户上传头像的请求时,会用一个ROOT/ ...
- ES6 阮一峰阅读学习
参考: ECMAScript6入门 就是随便看看,了解一下. 一.ECMAScript6简介 1. 什么是ECMAScript6? JavaScript语言的下一代标准.2015年6月发布,正式名称是 ...
- [工具] 护眼宝 – 傻瓜版屏幕蓝光过滤应用[Win/Android]
护眼宝 是一款 Windows.Android 下的屏幕蓝光过滤工具,傻瓜式操作,支持智能模式.疲劳提醒,可以有效的保护视力及减小夜间使用电脑.手机对睡眠对影响. 来自发现频道. 类似应用有很多了 ...
- Android - 安装应用(APP) 不显示图标
装应用(APP) 不显示图标 本文地址:www.2cto.com 在启动的activity的AndroidManifest注册中,添加隐式启动的data: 删除应用图标的若干解决方案: 1.Andro ...
- python的类中为什么要引入self
从第一次接触python的面向对象编程时起就很看不惯它的self,简直反人类. 相关资源: What is the purpose of self in Python? http://stackove ...
- Linguistic Data Consortium (LDC)
搞NLP的人经常会听到一个神秘的名字LDC,因为大量的论文所使用的数据都来自于LDC,本文就来揭露其神秘面目. About LDC: LDC,全名Linguistic Data Consortium, ...
- vue--使用定时器的问题
https://blog.csdn.net/ywl570717586/article/details/79963162