extjs 方法执行顺序_TestNG之注解变压器amp;方法拦截器

    一.注解变压器

    TestNG允许在执行期间修改所有注解的内容。当源代码中的注解大部分是正确的,但是有一些时刻你想要重写他们的值时,这个是非常有用的。

    可以使用注解变压器实现。

    注解变压器是一个实现了接口的类:

public interface IAnnotationTransformer {  /**   * This method will be invoked by TestNG to give you a chance   * to modify a TestNG annotation read from your test classes.   * You can change the values you need by calling any of the   * setters on the ITest interface.   *   * Note that only one of the three parameters testClass,   * testConstructor and testMethod will be non-null.   *   * @param annotation The annotation that was read from your   * test class.   * @param testClass If the annotation was found on a class, this   * parameter represents this class (null otherwise).   * @param testConstructor If the annotation was found on a constructor,   * this parameter represents this constructor (null otherwise).   * @param testMethod If the annotation was found on a method,   * this parameter represents this method (null otherwise).   */  public void transform(ITest annotation, Class testClass,      Constructor testConstructor, Method testMethod);}

    就像所有其他的TestNG监听者,你可以在命令行或使用ant来定义这个类:

java org.testng.TestNG -listener MyTransformer testng.xml

    或编程式方式:

TestNG tng = new TestNG();tng.setAnnotationTransformer(new MyTransformer());// ...

    当调用transform()方法时,可以调用ITest测试参数上任何设置方法来修改其值,然后再继续测试。

    例如,下面是一个如何重写属性的调用次数的例子,但是仅在测试类的测试方法的invoke()上:

public class MyTransformer implements IAnnotationTransformer {  public void transform(ITest annotation, Class testClass,      Constructor testConstructor, Method testMethod){    if ("invoke".equals(testMethod.getName())) {      annotation.setInvocationCount(5);    }  }}

    IAnnotationTransfomer只允许修改@Test注解,如果需要修改其他TestNG注解(配置注解,如@Factory或@DataProvider),需要使用IAnnotationTransformer2。

    二.方法拦截器

    一旦TestNG计算出测试方法的调用顺序,这些方法将被分成两组:

    1)方法按照顺序执行,这些都是有依赖项或被依赖项的所有测试方法,这些测试方法将会按照特定的顺序执行。

    2)方法没有特定的执行顺序,这些都是不属于第一类的方法。这些测试方法的运行顺序是随机的,每次运行时的顺序都可能会不同(默认情况下,TestNG将按照类对测试方法进行分组)。

    为了更好的控制第二类方法的执行,TestNG定义了下面这些接口:

public interface IMethodInterceptor {  List intercept(List methods, ITestContext context);}

    参数中传递的方法列表是可以按照任何顺序运行的所有方法。拦截器将会返回一个类型的IMethodInstance列表,可以是以下任意一种:

    1)一个更小的IMethodInstance对象列表。

    2)一个更大的IMethodInstance对象列表。

    3)一旦已定义了拦截器,就将它传递给TestNG作为一个监听者,例如:

java -classpath "testng-jdk15.jar:test/build" org.testng.TestNG -listener test.methodinterceptors.NullMethodInterceptor

   -testclass test.methodinterceptors.FooTest

    有关ant的有效语法,可以参考ant文档中的listeners属性。

    例如,下面是一个方法拦截器,它将对方法重新排序,以便始终首先运行属于组“fast”的测试方法:

public Listintercept(List methods, ITestContext context) {  List result = new ArrayList();  for (IMethodInstance m : methods) {    Test test = m.getMethod().getConstructorOrMethod().getAnnotation(Test.class);    Set groups = new HashSet();    for (String group : test.groups()) {      groups.add(group);    }    if (groups.contains("fast")) {      result.add(0, m);    }    else {      result.add(m);    }  }  return result;}

6788a17420d530925aa7eccd2f648438.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器升级中暂不可修改怎么回事,抖音服务器升级中,暂不支持本地区开播抖音怎么在法国直播?...

抖音服务器升级中,暂不支持本地区开播抖音怎么在法国直播?除了餐饮,腾讯自主研发的各种跨界开发节目也无人问津。至于年初腾讯app项目和资源,还没有整体发布,不过,神似的行业信息也有公布。这其中对爆红的博…

keil 查看 stm32 io波形_你知道 KEIL 自带示波器吗?

导读:很多时候我们并不满足于查看变量的值,可能还想看这个变量的历史变化,同时以波形的方式显示出来,这就需要了解 KEIL 另一个有趣的东西:逻辑分析仪。效果图:以 STM32F103RET6,外接 8M 晶振&a…

ai怎么取消颗粒效果_AI教程3个超实用设计技巧教程

1-AI教程-矢量颗粒墨点字体教程第一步选择自己需要图形第二步画一个一样大的黑白渐变,放上最上层。第三步效果-像素化-铜板雕刻第四步选择,粒状点,其他的也可以自己尝试。第五步对象-扩散-外观第六步图像描摹同时点击 扩展第七步选择图形&…

企业门户网站服务器,企业或个人门户网站对服务器前的重要准备 - 酷番云

互联网被称为继报纸、广播、杂志和电视之后的第五大数字媒体。因为传统媒体的高成本。而且还受到时间和地域的限制,除非你付出高昂代价,否则效果不太好。互联网是展示世界的窗口,也是信息交流的双向交流工具。成本低,回报丰厚。互联网已经成为越来越多企…

机器人踩滑板_不死神草、飞行滑板…超2000种创新发明在这里展出

便捷式单人飞行滑板、空海光电搜跟设备、“踩不死”的草坪…第二十四届全国发明展览会一带一路暨金砖国家技能发展与技术创新大赛今天(11月19日)上午在佛山市潭洲国际会展中心开幕戳视频看看有啥好玩↓ ↓ ↓视频来源:醒目视频智能中医艾灸床便捷式单人飞行滑板…

区分错误类型_数仓|几种SQL隐藏的错误,你遇到过吗?

本文分享主要描述了几种书写SQL时常见的一些隐藏错误,主要包括:在运算符中使用null值、在聚合数据时使用null值、求平均值时使用判断条件、滤条件中使用and和or、查询的列字段之间缺少逗号分隔、inner join与left join。都是一些比较细节的点&#xff0c…

-9 逆序输出一个整数的各位数字_【Java编程基本功】(八)逆序输出、是否为回文数,判断星期几,升序排列...

第二十四题给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。代码:public 第二十五题一个5位数,判断它是不是回文数。代码:public 代码2:public 第二十六题请输入星期几…

动词变名词的变化规则_动词第三人称单数的变化规则及练习(含语音)

点击上面蓝字关注我“点击即可听录音”1. 大部分单词可以直接在动词后:s例:like -- likes play -- playsShe likes cola.发音规则:所加的“s”在清辅音后,发【s】,works在浊辅音及元音后,发【z】, plays在…

c语言sleep函数_做游戏,学C语言,小球碰撞游戏,菜鸡者从黑窗口到图形化编程...

CMD黑窗口小球运动这次教程,我们实现一个弹跳小球。需要学习完基础的变量、运算符、表达式,printf、scanf输入输出函数的用法,if-else、while、for语句的用法。第1步,显示静止的小球。效果为:第2步让小球斜着弹跳。主要…

语言五子棋无ai程序框图_2020输入法报告 如何选择更好的AI语音输入法?

不少人认为,现在输入法均已内置语音输入方式,只要是语音输入就没有什么差别。其实不然。近日,Mob研究院发布《2020中国第三方输入法行业洞察》报告,深入挖掘分析语音输入法行业现状及变化趋势。《报告》统计显示,讯飞输…

对应的ctrl_取消单元格合并,对空白单元格填充数据,学会Ctrl+Enter五秒搞定

Excel统计数据过程中,相信大家最不想碰到的就是合并单元格,因为合并区域会对我们的数据统计造成各种麻烦。取消单元格合并后,除第一个单元格有内容外其他的单元格都成了空值。案例说明:如上图所示,我们需要将左边合并单…

对比两个字符串相等_字符串匹配问题

0.题目在一个主串S{a, b, c, c, b, c, a, b, d}, 模式串T{a, b, d};请找出模式串在主串中第一次出现的位置提示: 不需要考虑字符串大小写问题,字符均为小写字母第一次在7的位置匹配上1.BF算法Brute-Force算法,简称为 BF算法,是一种简单朴素的…

eclipse 导入maven项目_解决Eclipse导入JAVA WEB项目错误的问题

蓝字关注远浩老师一、 本文问题在开发中不可避免地要涉及导入项目。Eclipse作为常用开发工具,导入JAVA WEB项目文件也很方便,但是我们经常发现导入完的项目有红色的叉来做错误提醒,甚至一些代码也出现错误提示的红线,如下图。 为了…

并发执行变成串行_大神浅谈数据库并发控制 锁和 MVCC

在学习几年编程之后,你会发现所有的问题都没有简单、快捷的解决方案,很多问题都需要权衡和妥协,而本文介绍的就是数据库在并发性能和可串行化之间做的权衡和妥协 - 并发控制机制。如果数据库中的所有事务都是串行执行的&#xff…

docker 部署_Nginx K8s + Docker 部署 ,虚拟机部署教程。

Nginx K8s Docker 部署 ,虚拟机部署教程!Linux 虚拟机 部署1、下载nginx:http://nginx.org/download/2、选择一个版本进行下载:wget http://nginx.org/download/nginx-1.14.0.tar.gz3、解压:tar -xvf nginx-1.14.0.tar.gz4、安装…

双机热备_双机热备软件哪个好?双机热备软件推荐

服务器维护和管理是企业健康稳定运营的一项重要工作,而双机热备可以提供服务器的高可用性。但是成熟好用的双机热备软件有哪些呢?下面就给大家推荐几款。微软MSCSMSCS(Microsoft Cluster Service)实际上是微软自带的,不…

Json和Xml

一、前言 学习心得&#xff1a;C# 入门经典第8版书中的第21章《Json和Xml》 二、Xml的介绍 Xml的含义&#xff1a; 可标记性语言&#xff0c;它将数据以一种特别简单文本格式储存。让所有人和几乎所有的计算机都能理解。 XML文件示例&#xff1a; <?xml version"1.…

ec20驱动_物联网基础:移远EC20固件升级

使用移远 QFlash_V4.14 工具升级移远 EC20 4G模块固件1 准备工作 1.1 EC20 USB驱动安装安装过程参考移远官方手册&#xff1a;《Quectel_LTE&5G_Windows_USB_Driver_安装指导_V1.0.pdf》&#xff0c;有详细USB安装指导&#xff0c;该手册及驱动文件可以去移远官方下载或后续…

的微波感知_上海交大彭志科教授团队研发:微波微动监测与智能感知技术

上海9月18日电(葛俊俊) 准确监测方舱医院大量感染患者的生命状况&#xff0c;精确“诊断”大桥工程结构是否存在安全隐患&#xff0c;随时随地获取独居老人在家的健康体征……上海交通大学彭志科教授团队研发的基于微波感知的微动监测与环境智能前瞻技术&#xff0c;像一种神奇…

小米笔记本引导修复_知识帖,笔记本电脑不能开机?你可以试试这些办法

大家经常遇到电脑开机不能进入系统的时候是不是特别难受,朝歌后面几篇文章会讲讲一些常见的电脑问题和解决办法啦 前面有一个系列的文章都是在组装电脑的问题,大家感兴趣的可以关注了去主页看看呀 在现在的日常生活里,笔记本电脑对于很多人来说会比台式机重要的多,因为笔记…