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用例,这个在编写测试用例过程是 可以这么做,但是,如果测试用例写完了,也是这么做吗?有没有什么方法,例如自动化去实现.测试脚本维护后 ...
随机推荐
- This dependency was not found: * !!vue-style-loader!css-loader?……解决方案
1.新建一个vue项目时,需要重新安装stylus 报错 This dependency was not found: * !!vue-style-loader!css-loader?{"m ...
- jenkins - svn: E170001报错的原因以及解决方案
1. 什么问题What? 使用Jenkins配置的svn拉取项目,Jenkins报错:svn: E170001; Your credentials to connect to the reposito ...
- 23种设计模式之单例模式(Singleton)
单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法. public class SingleTon { private static Si ...
- .NET中的三种Timer的区别和用法(收集)
最近正好做一个WEB中定期执行的程序,而.NET中有3个不同的定时器.所以正好研究研究.这3个定时器分别是: 1.实现按用户定义的时间间隔引发事件的计时器.此计时器最宜用于 Windows 窗体应用程 ...
- wpgcms---设置应用模板
wpgcms设置应用模板,找了好半天才找到. 第一步:找到对应的应用(例如:案例) 选择“界面”,前台页面 设置列表模板: 设置详情模板:
- Django之数据聚合函数 annotate
在我们的博客侧边栏有分类列表,显示博客已有的全部文章分类.现在想在分类名后显示该分类下有多少篇文章,该怎么做呢?最优雅的方式就是使用 Django 模型管理器的annotate方法. 模型回顾 回顾一 ...
- [实战]MVC5+EF6+MySql企业网盘实战(2)——验证码
写在前面 断断续续,今天算是把验证码的东东弄出来了. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网盘实战(1) [实战]MVC5 ...
- poj1001 Exponentiation【java大数】
Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 183034 Accepted: 44062 ...
- java基础解析系列(六)---注解原理及使用
java基础解析系列(六)---注解原理及使用 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer缓存及 ...
- python面向对象高级:定制类
Python的class中还有许多这样有特殊用途的函数,可以帮助我们定制类. 比如: __str__ 与__repr____iter____getitem____call__ __str__ 与__r ...