监听器总览
最近空下来,打算好好学习回顾下,把这个过程记录下来,也算是一种对过去的沉淀吧。打算从TestNG开始,遇到什么问题展开学习什么。
从图中可以看出org.testng.ITestNGLister这个接口类是所有监听器的父接口,而他的子接口如图所示,从图中,我们还能看到所有的实现类。当我们要自定义监听器时,其实就是去实现这些预定义的接口类。
TestNG API:https://www.javadoc.io/doc/org.testng/testng/6.14.0/overview-summary.html
现在我们根据上面这些接口类,进行一下功能分类说明。
IAlterSuiteListener
这个接口使我们可以访问到XmlSuite对象,这样我们可以基于自己的需求修改suite或者test。
该监听器只可以通过listeners标签在suite文件中添加,或者是通过service loaders使用。不可以通过@Listeners注解。
IAnnotationTransformer
有3个这种类型的接口:IAnnotationTransformer, IAnnotationTransformer2, IAnnotationTransformer3,分别对应不同的注解。
IAnnotationTransformer,操作@Test标注
IAnnotationTransformer2,操作@Configuration标注、@DataProvider标注和@Factory标注
IAnnotationTransformer3,操作@Listeners标注
IClassListener/ISuiteListener/ITestListener
IClassListener:通过onBeforeClass和onAfterClass两个方法,对ITestClass对象操作。
ISuiteListener:通过onStart和o