TestNG学习-监听方法的使用

简介: TestNG学习-监听方法的使用

1. 监听方法的调用    

   当TestNG调用测试用例(以@Test注释)或配置(以@Before或@After注释中的任何一个注释)方法时,监听器IInvokedMethodListener都可以进行通知,可以通过以下接口实现监听方法的调用:

public interface IInvokedMethodListener extends ITestNGListener {
  void beforeInvocation(IInvokedMethod method, ITestResult testResult);
  void afterInvocation(IInvokedMethod method, ITestResult testResult);
}

   根据TestNG监听器的部分所述,将其声明为监听器使用。


2. 重写测试方法

   TestNG允许您重写并在可能的情况下,跳过测试方法的调用。例如需要使用特定的安全管理器来测试方法时。可以通过提供实现IHookable的监听器来实现。下面是一个JAAS实现的例子:

public class MyHook implements IHookable {
  public void run(final IHookCallBack icb, ITestResult testResult) {
    // Preferably initialized in a @Configuration method
    mySubject = authenticateWithJAAs();
    Subject.doAs(mySubject, new PrivilegedExceptionAction() {
      public Object run() {
        icb.callback(testResult);
      }
    };
  }
}

3. 更新suite和测试用例

    背景

   有时,可能只需要在运行时更改suite的xml文件中的suite或test标签,而不必更改suite文件的内容。

   TestNG允许在运行时通过监听器更改suite的xml文件中的suite或test标签。可以通过提供实现IAlterSuiteListener的监听器来实现此目的。

   以下示例显示suite的名称在运行时如何更改:

public class AlterSuiteNameListener implements IAlterSuiteListener {
    @Override
    public void alter(List<XmlSuite> suites) {
        XmlSuite suite = suites.get(0);
        suite.setName(getClass().getSimpleName());
    }
}

 只能通过以下两种方式之一添加监听器:

  • 通过suite的xml文件中的<listeners>标记。
  • 通过Service Loader

   注:不能使用@Listeners注解的方式添加。


相关文章
|
数据可视化 Java
Java中的事件监听知识点&动作监听简单实现(含源码阅读)
监听分为三类:键盘监听、鼠标监听 和 动作监听,看到这些名词可能有点懵,监听是个啥,那么首先我们来理解一下绑定监听:当事件源(按钮)上发生了某个事件(单击),就执行某段代码(输出“您已点击按钮”)
338 0
Java中的事件监听知识点&动作监听简单实现(含源码阅读)
|
3月前
|
JSON Java 数据格式
Javaweb之SpringBootWeb案例之自动配置的原理分析的详细解析
Javaweb之SpringBootWeb案例之自动配置的原理分析的详细解析
23 0
|
3月前
javaWeb监听器Listener -自定义监听器类实现
javaWeb监听器Listener -自定义监听器类实现
|
XML 监控 Java
Listener 监听器介绍以及代码演示
Listener 监听器介绍以及代码演示
84 0
JavaWeb第十三章课后题 监听器Listener详解
JavaWeb第十三章课后题 监听器Listener详解
66 0
|
JSON Java 关系型数据库
springboot基础入门之json转换框架 、全局异常捕捉以及JPA连接数据库
springboot基础入门之json转换框架 、全局异常捕捉以及JPA连接数据库
|
Java Spring
Java:SpringBoot实现ApplicationEvent事件的监听和发布
Java:SpringBoot实现ApplicationEvent事件的监听和发布
122 0
|
XML Java 关系型数据库
TestNG学习-参数的使用
TestNG学习-参数的使用
TestNG学习-参数的使用
|
Java 测试技术 Maven
TestNG学习-运行一个测试实例
TestNG学习-运行一个测试实例
TestNG学习-运行一个测试实例