testNG官方文档翻译-2 注解
这里是一份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 注解的更多相关文章
- testNG官方文档翻译-5 测试方法,测试类和测试组
5.1 - 测试方法 测试方法是被 @Test注解的方法.这些方法的返回值会被忽略,除非在testng.xml中将allow-return-values设置为true. <suite allow ...
- testNG官方文档翻译-3 testng.xml
你可以通过以下几种不同的方法触发TestNG: 用一个testng.xml文件 使用ant 从命令行触发 这个章节将会介绍testng.xml的格式(你也可以在下面找到关于ant和命令行的内容). 关 ...
- testNG官方文档翻译-1 简介
官方文档链接http://testng.org/doc/documentation-main.html 简介 TestNG是一个被设计用来简化广泛的测试需求的测试框架,它既可应用于单元测试(测试一个独 ...
- testNG官方文档翻译-4 运行TestNG
TestNG可以通过不同的方法触发运行: 命令行 ant Eclipse IntelliJ's IDEA
- Spring官方文档翻译(1~6章)
Spring官方文档翻译(1~6章) 转载至 http://blog.csdn.net/tangtong1/article/details/51326887 Spring官方文档.参考中文文档 一.S ...
- GreenDao官方文档翻译(上)
笔记摘要: 上一篇博客简单介绍了SQLite和GreenDao的比较,后来说要详细介绍下GreenDao的使用,这里就贴出本人自己根据官网的文档进行翻译的文章,这里将所有的文档分成上下两部分翻译,只为 ...
- Retrofit官方文档翻译
Retrofit官方文档翻译 官方文档网址 http://square.github.io/retrofit/ 介绍 Retrofit 将你的 HTTP API 转换为 Java 接口. public ...
- Data Binding Guide——google官方文档翻译(下)
这篇博客是Data Binding Guide官网文档翻译的下篇.假设没看过前半部分翻译的能够先看Data Binding Guide--google官方文档翻译(上) 一,数据对象 不论什么不含业 ...
- 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 ...
随机推荐
- phhstrom 快捷键
TODO(表示待办事件)注释 快捷键 Alt+6 Alt+6 可以查看添加了//TODO注释的代码片段 一般我们在开发过程中由于时间或者各方面的时间来不及完成的代码,往往会先将逻辑写出来,实现留待以后 ...
- POJ 1789 Truck History (Kruskal)
题目链接:POJ 1789 Description Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks ...
- Netty教程
Netty是一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. Netty是一个NIO客户端.服务端框架.允许快速简单 ...
- 2.3 Nginx服务的启停控制
在Linux平台下,控制Nginx服务的启停有多种方法 2.3.1 Nginx服务的信号控制 在Nginx服务的启停办法中,有一类是通过信号机制来实现的,Nginx服务器的信号控制如下: Nginx服 ...
- 开发效率优化之Git分布式版本控制系统(一)
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将先从Git分布式版本控制系统来阐述开发效率优化 一,企业 ...
- uoj#186 【UR #13】Yist
题目 orz myy 首先注意到答案有单调性,于是我们可以考虑二分一个\(x\),之后去判断一下每次只使用长度为\(x\)的区间能否删出目标序列 显然我们应该贪心地删除需要删除元素中最小的那一个,感性 ...
- neo4j APOC与自定义存储过程环境搭建
neo4j APOC与自定义存储过程环境搭建 主要参考资料:APOC官网https://neo4j-contrib.github.io/neo4j-apoc-procedures/APOC介绍 PPT ...
- testprns printername [printcapname]
描述 此程序是samba套件的一部分. testprns是个非常简单的测试程序,用于检查smbd作为服务提供的打印机名是否合法. 在这里“Valid”的意思就是“在printcap中可以找到该打印机” ...
- celery中配置redis密码时的ValueError: invalid literal for int() with base 10: 'xxxx'
原配置: celery_broker = 'redis://:xxxx#xxxx@172.17.0.1:6379/0' # docker0 错误原因: 密码中不能有 # ? 等特殊字符 (无语O__O ...
- Postfix+Dovecot+MySQL搭建邮件服务器
网上有很多使用Postfix搭建邮件服务器的文章,但目前貌似没有看到较为完整的一篇.本例将尝试在Ubuntu系统中使用Postfix+Dovecot+MySQL搭建邮件服务器. 说到邮件服务器,网上有 ...