这里是一份TestNG中的可用注解及其属性的概述。

一、用于一个TestNG类的信息配置的注解:

  • @BeforeSuite:被BeforeSuite注解的方法将在其所在suite中的所有test运行之前执行;
注:例如BeforeSuite方法在Class1中,test1方法在Class1中,test2方法在Class2中,Class2在testng中优先级较高,则执行顺序BeforeSuite-》test2-》test1
  • @AfterSuite:被AfterSuite注解的方法将在其所在suite中的所有test运行之后执行;
注:多个类中多个BeforeSuite/AfterSuite将按照testng.xml中的顺序执行
Class1:BeforeSuite1,AfterSuite1,test1;Class2:BeforeSuite2,AfterSuite2,test2;
testng.xml顺序:Class2-》Class1
执行顺序 BeforeSuite2-》BeforeSuite1-》test2-》test1-》AfterSuite2-》AfterSuite1
  • @BeforeTest:被注解的方法将在test标签包含的类中的任一测试方法运行之前执行;
注:BeforeTest方法属于类Class1,Class1、Class2被包含在标签test模块中,Class1、Class2分别含有多个method
Class1:BeforeTest方法,test1,test2,;Class2:test3,test4
testng.xml配置:test标签包含Class1、Class2
执行顺序 BeforeTest-》test1-》test2-》test3-》test4
  • @AfterTest:被注解的方法将在test标签包含的类中的所有测试方法运行之后执行;
  • @BeforeGroups:这个被注解的方法将在组列表执行之前运行,这个方法用于保证组列表中的第一个测试方法被触发之前快速执行;
注:groups用于给类(多个类)中的方法分组,在testng.xml中体现在在 test标签中配置类的groups,该test仅运行groups中的方法;
在类中通过 @Test的groups参数确定方法所属组,在 @BeforeGroups中同样需要groups参数确定方法所属组
  • @AfterGroups:这个被注解的方法将在组列表执行之后运行,这个方法用于保证组列表中的最后一个测试方法被触发之后快速执行;
  • @BeforeClass:被注解的方法将在当前类中第一个测试方法被触发之前执行;
  • @AfterClass:被注解的方法将在当前类中所有测试方法被运行完之后执行;
  • @BeforeMethod:被注解的方法将在每一个测试方法运行之前执行;
  • @AfterMethod:被注解的方法将在每一个测试方法运行之后执行;

一个TestNG类的父类的注解表现

当在一个TestNG类的父类中加入上述注解时,相应的注解行为将在TestNG类中被继承。当需要对多个测试类的通用父类进行集中的测试设置时,继承功能将很有用。在继承的情况下,TestNG将保证"@Before"的方法按继承顺序执行(高级父类优先,然后是继承链),"After"的方法逆序执行(按继承链反向执行)。

参数:

  • alwaysRun:对于Before方法,当该参数设置为true时,不论被配置方法属于哪个群组,它都会执行;对于After方法,当该参数设置为true时,即使前面触发的方法执行失败或者被跳过,被配置方法都会执行。
注:即当一个before方法被配置为alwaysRun时,其执行不再受群组属性限制;
例如类Class1中,beforeTest方法所属groups={"functest"},alwaysRun=true,其他test1、test2方法为groups={"checkintest"},xml中配置 test运行的群组为checkintest,但在执行时,忽略群组属性
执行顺序为 beforeTest-》test1、test2
  • dependsOnGroups:这个方法需要依赖的群组列表;
  • dependsOnMethods:这个方法需要依赖的方法列表;
注:用于定义执行顺序,DependsOnMethods是强依赖,DependsOnGroups是弱依赖
  • enabled:这个类或方法是否激活;
注:enabled=false时,该方法不执行;默认为true
  • groups:这个方法/类所属于的群组列表;
  • inheritGroups:如果为true,这个方法将属于类级别中被 @Test注解的群组

二、DataProvider

  • @DataProvider:将一个方法标记为另一个 @Test方法的数据源;被标记的方法需返回一个Object[][],其中每一个Object[]都是 @Test方法的一份参数列表。想要接收数据源的 @Test方法需要标注一个和数据源相同的名字;

参数:

  • name:数据源的唯一名字,供其他测试方法通过名字引用数据源。如果该参数没有被提供,将被自动设置为这个被注解方法的名字。
  • parallel:如果设置为true,则引用data provider的tests将会并行执行,默认值为false。

三、Factory

  • @Factory:将一个方法标记为工厂,该被标记方法返回的数据将会被TestNG作为测试类使用,这个方法必须返回Object[]
关于Factory,有一篇详细介绍
http://www.cnblogs.com/zhaochifan/p/5216383.html

四、Listeners

  • @Listeners:定义在测试类上放置的监听器

参数

  • value:一系列继承了org.testng.ITestNGListener的类

五、Parameters

  • @Parameters:描述如何将参数传递给一个 @Test方法;
参考文档:http://blog.csdn.net/kaku21/article/details/49943443

参数

  • value:用于填充该方法的参数的变量列表;

六、Test

  • @Test:将一个方法/类标记为测试的一部分;

参数:

  • alwaysRun:如果设置为true,即使这个测试方法所依赖的方法运行失败,它仍然会运行;
  • dataProvider:用于标注这个测试方法的data provider的名称
  • dataProviderClass:标注其data provider所在的类。如果没有使用该参数,测试方法将在其所在类或其父类中寻找data provider;如果这个参数被使用了,测试方法的data provider方法需要是该类中的静态方法;
  • dependsOngroups:测试方法所依赖的组列表
  • dependsOnMethods:测试方法所依赖的方法列表
  • description:测试方法的描述信息
  • enabled:关于这个类/方法的其他方法是否可用
  • expectedExceptions:期望测试方法抛出的异常列表。如果没有异常或者一个不同于该列表的异常被抛出,该测试将被标记为失败
  • groups:这个类/方法所属的组列表
  • invocationCount:这个测试方法应该被触发的次数
  • invocationTimeOut:这个测试方法被全部触发的所有累计时间的最大值,以毫秒记;如果invocationCount未使用,此属性将被忽略;
  • priority:这个测试方法的优先级,低级别的方法将优先被调用;
  • successPercentage:这个测试方法期望运行成功的百分比
  • singleThreaded:如果设置为true,这个测试类里的所有方法将在同一个线程中执行,即使这些方法带着参数parallel="method"在运行;这个属性只能被使用在类级别,如果被使用在方法级别将会被忽略。PS:这个属性曾用名为sequential。
  • timeOut:测试消耗时间的最大值,以秒记;
  • threadPoolSize:测试方法的线程池数量,这个测试方法将被以invocationCount标记的多个线程触发;PS:如果invocationCount未设置,此属性将被忽略。

testNG官方文档翻译-2 注解的更多相关文章

  1. testNG官方文档翻译-5 测试方法,测试类和测试组

    5.1 - 测试方法 测试方法是被 @Test注解的方法.这些方法的返回值会被忽略,除非在testng.xml中将allow-return-values设置为true. <suite allow ...

  2. testNG官方文档翻译-3 testng.xml

    你可以通过以下几种不同的方法触发TestNG: 用一个testng.xml文件 使用ant 从命令行触发 这个章节将会介绍testng.xml的格式(你也可以在下面找到关于ant和命令行的内容). 关 ...

  3. testNG官方文档翻译-1 简介

    官方文档链接http://testng.org/doc/documentation-main.html 简介 TestNG是一个被设计用来简化广泛的测试需求的测试框架,它既可应用于单元测试(测试一个独 ...

  4. testNG官方文档翻译-4 运行TestNG

    TestNG可以通过不同的方法触发运行: 命令行 ant Eclipse IntelliJ's IDEA

  5. Spring官方文档翻译(1~6章)

    Spring官方文档翻译(1~6章) 转载至 http://blog.csdn.net/tangtong1/article/details/51326887 Spring官方文档.参考中文文档 一.S ...

  6. GreenDao官方文档翻译(上)

    笔记摘要: 上一篇博客简单介绍了SQLite和GreenDao的比较,后来说要详细介绍下GreenDao的使用,这里就贴出本人自己根据官网的文档进行翻译的文章,这里将所有的文档分成上下两部分翻译,只为 ...

  7. Retrofit官方文档翻译

    Retrofit官方文档翻译 官方文档网址 http://square.github.io/retrofit/ 介绍 Retrofit 将你的 HTTP API 转换为 Java 接口. public ...

  8. Data Binding Guide——google官方文档翻译(下)

    这篇博客是Data Binding Guide官网文档翻译的下篇.假设没看过前半部分翻译的能够先看Data Binding Guide--google官方文档翻译(上)  一,数据对象 不论什么不含业 ...

  9. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)中一些知识点

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Flume官方文档翻译--Flume 1.7.0 User Guide (unr ...

随机推荐

  1. Install Apache 2.2.15, MySQL 5.5.34 & PHP 5.5.4 on RHEL/CentOS 6.4/5.9 & Fedora 19-12 [转]

    Step 1: Installing Remi Repository ## Install Remi Repository on Fedora , , , , ## rpm -Uvh http://d ...

  2. 百度之星资格赛2018B题-子串查询

    子串查询 题目 度度熊的字符串课堂开始了!要以像度度熊一样的天才为目标,努力奋斗哦! 为了检验你是否具备不听课的资质,度度熊准备了一个只包含大写英文字母的字符串 A[1,n]=a1a2⋯an,接下来他 ...

  3. 运维 04 Shell基础命令(二)

    Shell基础命令(二)   查看Linux的发行版 cat /etc/redhat-release cat /etc/os-release 查看系统用户的id信息 id 用户名 id root id ...

  4. vue mock数据(模拟后台)

    本文转载自:https://blog.csdn.net/benben513624/article/details/78562529 vue实现ajax获取后台数据是通过vue-resource,首先通 ...

  5. ldap认证服务的搭建

    1. Ldap服务介绍 LDAP 全称轻量级目录访问协议(英文:Lightweight Directory Access Protocol),是一个运行在 TCP/IP 上的目录访问协议.目录是一个特 ...

  6. Linux常用信号快捷键的使用

    ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程.常用于终止正在运行的程序.ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程.ctrl-d 不是发送信 ...

  7. Window/Linux + Vim + MingW 配置

    Windows: 首先安装Vim , MinGW,假设安装目录为D:\MinGW. 配置环境变量: LIBRARY_PATH=D:\MinGW\lib C_INCLUDE_PATH=D:\MinGW\ ...

  8. CF1205B

    CF1205B 由鸽巢原理n比较大的时候直接输出3 然后剩下的就可以跑最小环 #include<iostream> #include<cstdio> #include<c ...

  9. Mint安装配置Sublime Text3

    1.注册码: Sublime Text 3 3126 注册码 2.安装Package Control组件: 按Ctrl+`调出console(注:安装有QQ输入法的这个快捷键会有冲突的,输入法属性设置 ...

  10. c# PID算法入门

    离开工控行业已经有一段时间了,最近回忆起以前的工作,又对 PID 算法有了兴趣.所以写了一个小项目,希望可以帮到需要的人,也算是对那段工作经历的一个总结. 这是一个 winform 的项目.负载是一个 ...