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

简介: 原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong/article/details/40404939 TestNg提供了监听器和拦截器的几个接口供我们自己开发扩展,通过实现这些接口,来自定义我们在测试中想要的行为 接口列表: IAnnotationTransformer (doc,javadoc) IAnnota

原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong/article/details/40404939


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

接口列表:

原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong/article/details/40404939

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包中的代码执行的


原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong/article/details/40404939


目录
相关文章
|
11月前
properties加载的几种方式
properties加载的几种方式
|
9天前
|
消息中间件 NoSQL 安全
(转)Spring Boot加载 不同位置的 application.properties配置文件顺序规则
这篇文章介绍了Spring Boot加载配置文件的顺序规则,包括不同位置的application.properties文件的加载优先级,以及如何通过命令行参数或环境变量来指定配置文件的名称和位置。
|
XML 数据格式
告别web.xml映射Servlet、Filter、Listener,解锁注解新方式开发
告别web.xml映射Servlet、Filter、Listener,解锁注解新方式开发
|
Python
FastAPI(35)- 依赖项中使用 yield + Context Manager 上下文管理器
FastAPI(35)- 依赖项中使用 yield + Context Manager 上下文管理器
314 0
|
XML 数据格式
web.xml中的web-app中配置信息顺序出错解决办法
web.xml中的web-app中配置信息顺序出错解决办法
112 0
Struts2动态方法调用,和struts.xml的通配符方式调用
Struts2动态方法调用,和struts.xml的通配符方式调用
107 0
Struts2动态方法调用,和struts.xml的通配符方式调用
|
JSON Java 数据格式
【SpringBoot】配置文件的加载与属性值的绑定
【SpringBoot】配置文件的加载与属性值的绑定
【SpringBoot】配置文件的加载与属性值的绑定
|
应用服务中间件 编译器 Android开发
配置Tomcat时server.xml自动还原问题【Tomcat会删除自己在Servlet.xml 配置的Context元素】
配置Tomcat时server.xml自动还原问题【Tomcat会删除自己在Servlet.xml 配置的Context元素】
140 0
配置Tomcat时server.xml自动还原问题【Tomcat会删除自己在Servlet.xml 配置的Context元素】
|
Java Spring
Activiti监听任务的几种方式
Activiti监听任务的几种方式
1324 0
未能加载文件或程序集“System.Web.Http.WebHost, Version=4.0.0.0, ”或它的某一个依赖项。系统找不到指定的文件。
未能加载文件或程序集“System.Web.Http.WebHost, Version=4.0.0.0, ”或它的某一个依赖项。系统找不到指定的文件。
648 0