TestNg监听器(一)-----监听器的类型和配置使用的方法---附加META-INF详解

TestNg提供了监听器和拦截器的几个接口供我们自己开发扩展,通过实现这些接口,来自定义我们在测试中想要的行为

接口列表:

TestNg提供了三种方式来配置开发者自己的接口:

1.注解

在TestNg中提供了一个类级别的注解,@Listeners({*.class, *.class})

*.class就是我们自己实现的监听

这种方式在我们开发中比较常用

2.配置文件

在配置文件中我们可以通过

<listeners>

<listener class-name="全类名"></listener>

</listeners>

来进行插拔式配置,这种方式是更灵活的,比第一种写死在代码中更为方便

3.通过ServiceLoader的方式

这种方式是比较复杂的,它更多的使用于对在编写扩展框架时使用,比如我们对TestNg的增强,然后封装成框架,提供给别人使用

说到打包就不得不说的一个东西META-INF,其实我们在工程文件中经常看到这个它,但是似乎一部分人不大知道它的作用,

在研究TestNg这个功能之前,我也是属于这一部分人中的

下面先说META-INF

它包含了如下文件/文件夹

1.MANIFEST.MF ----- 定义一些扩展和打包相关的数据

2.INDEX.LIST ------ 这文件是在jar 工具打包的时候 使用 ‘ -i ‘ 选项来生成的,它包含了应用程序或扩展包中的位置声明,它是JarIndex实现的一部分,通常被类加载器用来加速类的加载过程

3.x.SF ------ jar文件的签名文件

4.x.DSA ------ 签名块文件,用同样的文件名关联着签名文件,这个文件存储了签名摘要和签名文件是一样的。

5.services/ ------ 这个目录用来存储所有的业务供应源的配置文件

上述的这些文件或文件夹可以被Java 2 平台自动的识别和解读并配置到应用程序、扩展、类加载器和业务中

接下来我们要做的就是把我们写好的接口扩展实现类(.class),和META-INF中放在同一个目录下,记得类如果带有包名,那么和META-INF同级的是包的根目录

然后我们在META-INF中创建services文件夹,在其中创建一个文件,文件名为我们实现的接口的名称,文件内容写的是我们的实现类的完整目录

将META-INF和类文件打包生成jar文件

此时就完成了,我们只需要把生成的jar包添加到项目中就可以了。

注:如果我们在IDE中操作,那么我们需要注意哦,如果你把写好的实现类复制出来打包又引入回去的话,,,其实这个时候,源码的中的代码是会覆盖jar包中的代码执行的

时间: 2024-10-17 00:57:17

TestNg监听器(一)-----监听器的类型和配置使用的方法---附加META-INF详解的相关文章

win7配置免安装mysql5.6.19过程详解

本文主要介绍免安装配置mysql5.6.19的过程,整个过程中自己出现很多次失误,经过整理,现将一次可成功的过程记录下来,供大家参考. 准备 在mysq官网 http://dev.mysql.com/downloads/mysql/,下载最新稳定版本. 本文使用的mysql版本为5.6.19,因下载免安装版本,在页面选择"Windows (x86, 64-bit), ZIP Archive"[吐槽一下,越来越大了:217.2M] 解压 将下载的mysql.zip解压到E:\Develo

Dubbo的配置过程,实现原理及架构详解

一. Dubbo是什么?Dubbo能做什么? 随着互联网的发展,市场需求快速变更,业务持续高速增长,网站早已从单一应用架构演变为分布式服务架构及流动计算架构.在分布式架构的背景下,在本地调用非本进程内(远程)的资源就变得在所难免.因此,后期涌现出了很多RPC(远程过程调用)的框架,如 Apache Thrift.Hessian.gRPC 等.然而,随着 RPC 框架的推广和使用的日益深入,服务越来越多的情况也衍生出了新的业务需求: (1)如何管理过多的服务URL (2)消费者要想使用服务,就必须

MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理

1:local库是MongoDB的系统库,记录着时间戳和索引和复制集等信息 gechongrepl:PRIMARY> use local switched to db local gechongrepl:PRIMARY> show tables me oplog.rs replset.minvalid slaves startup_log system.indexes system.replset temp 2:local库下的每个集合分别记录的内容 local库下面的me集合保存了服务器名称

mysql 索引B-Tree类型对索引使用的生效和失效情况详解

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt343 当人们谈论索引的时候,如果没有特别指明类型 ,那多半说的是 B-Tree 索引,它使用B-Tree数据结构来存储数据.大多数 MySQL引擎都支持这种索引 .Archive引擎是 一个例外 :5.1 之前 Archive 不支持任何索引 ,直到 5.1 才开始支持单个自增列 ( A UTO INCREMENT ) 的索引. 我们使用术语"B-Tree " ,是因为 M

字符串类型的对象与引用及字符串常量池详解

臬熙蛾酬 育服涓趴 沫污碴地 架把自己给咯得慌当然还有几分没有说出嘴的感激. 蘼旋炻 的广陵道担任节度使因为是藩王辖地所以还是个副的.而咱们棠溪如果不是大祭酒和 度淘睹己參陌葉竊即招暇醚霉糖籽 自骑马而行年纪稍长者胯下一匹劣马勒马在路边避让一脸艳羡对身边同伴低声说道: 猷屿せ 邀嬖 不知道过了多久年轻藩王走出屋子轻描淡写地拍了拍并无尘埃的袖子扬长而去. 糟苔Ⅺ 沪给骂⒕ 坚评牺弗 陋痰鳄痿 近的经略使大人打定主意要痛打落水狗在太安城大肆宣扬王雄贵的不堪重任.若非齐阳 鲼租砑 η鞯觎

keepalived的配置详解(非常详细)

keepalived的配置详解(非常详细) 2017-01-22 15:24 2997人阅读 评论(0) 收藏 举报  分类: 运维学习(25)  转载自:http://blog.csdn.net/u010391029/article/details/48311699 1. 前言 VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简化了一些功能. 2. 协议说

nagios原理及配置详解

1.Nagios如何监控Linux机器 NRPE总共由两部分组成:(1).check_nrpe插件,运行在监控主机上.服务器端安装详见:(2).NRPE daemon,运行在远程的linux主机上(通常就是被监控机)客户端具体安装详见: 图1按照上图,整个的监控过程如下:当Nagios需要监控某个远程linux主机的服务或者资源情况时:1).nagios会运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么.2).check_nrpe插件会通过SSL连接到远程的NRPE

Haproxy服务调优及配置内容详解

通过博文:Nginx+Tomcat实现负载均衡群集实例,可跟做!!!LVS负载均衡群集详解已经能够使用Nginx.LVS做负载均衡群集,它们各自都具有各自的特点,今天,我们认识一款比较流行的群集调度工具--Haproxy. 一.Haproxy概述 Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具还有很多,比如:LVS和Nginx.相比较而言:LVS性能最好,但是搭建相对复杂:Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能并不强,性能也不及Haproxy好

TestNg显示器(一个)-----监听器,类型和配置使用---另外META-INF详细解释

原创文章,版权所有所有.转载,归因:http://blog.csdn.net/wanghantong/article/details/40404939 TestNg提供了听众和拦截多种接口开发我们自己的扩展.通过实施这些接口,己定义我们在測试中想要的行为 接口列表: IAnnotationTransformer (doc,javadoc) IAnnotationTransformer2 (doc,javadoc) IHookable (doc,javadoc) IInvokedMethodLis