博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TestNG的监听器概述
阅读量:4179 次
发布时间:2019-05-26

本文共 1264 字,大约阅读时间需要 4 分钟。

TestNG的监听器(listener)是一系列的接口,用于在运行时设置动态参数,以改变TestNG的执行过程。TestNG的所以监听器都是org.testng.ITestNGListener接口的实现。

1. 常见的TestNG提供的监听器接口如下:

  • IAnnotationTransformer 
  • IAnnotationTransformer2 
  • IAnnotationTransformer3 
  • IHookable 
  • IInvokedMethodListener 
  • IInvokedMethodListener2 
  • IMethodInterceptor 
  • IReporter 
  • ISuiteListener 
  • ITestListener 

我们将在后续文章中详细介绍这些监听器的具体用法,这里只介绍在TestNG中使用监听器的方法。

2. 在TestNG中使用监听器可以有如下方式:

  • 启动TestNG的命令行中给出-listener参数
  • 在testng.xml配置文件中设置<listeners>
  • 在测试类中设置@Listeners标注
  • 利用Java SPI接口的实现机制

1).命令行中给出-listener参数

java org.testng.TestNG -listener 
testng.xml

对于具体的一个监听器实现类,临时用于一次测试,可以通过这种方式设置测试执行的监听器。

2).testng.xml配置文件中设置<listeners>

...
...

这种方式可以设置多个监听器。

3).为测试类设置@Listeners标注

@Listeners({ com.mydomain.MyListener.class, com.mydomain.MyMethodInterceptor.class })public class MyTest {  // ...}

这种方式可以设置多个监听器。

事实上,这种方式与在testng.xml配置文件中设置<listeners>是等价的。虽然只是在一个测试类中设置监听器,但是监听器作用于该测试类所在的整个测试执行过程中。

4).Java SPI接口的实现的监听器

从Java 6开始,为了支持更加灵活的、对服务的扩展(对服务接口的独立实现),JDK提供了java.util.ServiceLoader<S>类。该类能够在运行时动态加载第三方提供的服务实现,而无需预先进行任何的代码级编译集成。从而实现了服务接口与服务实现的完全松耦合。具体请参考Java Doc。

通过SPI机制,我们只要开发自己的TestNG的监听器实现类;然后在该实现类的同级目录中创建“META-INF/services/org.testng.ITestNGListener”,即声明监听器实现类说实现的服务接口;最后将目录打包为jar文件,在运行TestNG执行时加入该jar到classpath中即可。

 

转载地址:http://rslai.baihongyu.com/

你可能感兴趣的文章
Spring Bean的生命周期
查看>>
mysql的通用查询日志和慢查询日志
查看>>
IDEA中设置Run Dashboard(Services)
查看>>
Mysql5.7免安装安装教程 win10
查看>>
SpringBoot属性注入的几种方式
查看>>
Idea 解决SVN冲突
查看>>
Sptingboot AOP实现多数据源切换(Hive Impala oracle)
查看>>
dynamic-datasource动态多数据源整合hive impala
查看>>
Mybatis+impala插入超过510个字符串的字段报:HIVE_PARAMETER_QUERY_DATA_TYPE_ERR_NON_SUPPORT_DATA_TYPE
查看>>
SpringBoot项目启动完成自动打开网址
查看>>
记录一下把mapper.xml文件放在java的坑
查看>>
反射的使用
查看>>
使用Stream排序分组
查看>>
linux安装mysql 5.7.23二进制 安装jdk tomcat
查看>>
mysql总结 windows 版本
查看>>
POI 导出工具类
查看>>
HTTP请求工具类
查看>>
Ngnix+tomcat 集群以及session共享
查看>>
Nginx配置多个项目放在不同的tomcat中,共享同一个端口
查看>>
mysql的JDBC连接工具类
查看>>