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

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

TestNG的测试套件(suite)类似于一个测试方案,其中包含若干个测试用例。TestNG通常一次执行一个测试套件,也可以一次执行多个测试套件。

ISuite接口是定义测试套件的接口,可以说一个ISuite接口的实现就是一个测试套件。

TestNG提供了ISuite默认的实现org.testng.SuiteRunner,负责执行一个测试套件中包含的所有测试用例。SuiteRunner通过其run()方法触发对测试用例的执行。

1.ISuiteListener监听器

TestNG的ISuiteListener监听器继承自ITestNGListener接口,提供了如下方法以监听测试套件的开始和结束:

void onStart(ISuite suite);void onFinish(ISuite suite);
其中,onStart()方法在SuiteRunner开始执行测试之前被调用;onFinish()方法在
SuiteRunner执行完当前套件中的所有测试之后被调用。

上述方法都带有ISuite类型的参数。

ISuiteListener监听器的用法与其他监听器一直,此处略。

2.IAlterSuiteListener监听器

在执行一个测试套件的过程中,有时候我们需要根据运行的具体情况临时改变一些测试套件的配置参数。

TestNG的IAlterSuiteListener监听器能够在运行时,改变testng.xml中的部分配置参数。

IAlterSuiteListener监听器继承自ITestNGListener接口,提供了如下方法以修改测试套件的参数:

void alter(java.util.List<XmlSuite> suites);

在TestNG的运行时,testng.xml对应一个XmlSuite对象,IAlterSuiteListener监听器的实现能够直接访问XmlSuite对象,并操作其中的参数。

IAlterSuiteListener监听器的实现示例:

public class MyAlterSuiteNameListener implements IAlterSuiteListener {     @Override    public void alter(List
suites) { XmlSuite suite = suites.get(0);//只取第一个suite suite.setName(getClass().getSimpleName()); }}
注意,IAlterSuiteListener监听器的使用有特殊要求。使用IAlterSuiteListener监听器,只能通过在testng.xml中的<listeners>,或者通过Java的SPI接口。除此之外的其他方法,如在测试类中通过@Listeners标注等,都是无效的。

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

你可能感兴趣的文章
无法取消打印机所有文档的解决办法
查看>>
关于主从复制、读写分离
查看>>
谷歌BBR的安装
查看>>
找回苹果电脑登录密码
查看>>
JS最佳实践——单例模式
查看>>
通过pcre、zlib、openssl等库源码来源码编译nginx
查看>>
为php添加gd库支持
查看>>
$'\r': command not found
查看>>
bash脚本:一键安装MYSQL5.6
查看>>
javascript实现压缩图片
查看>>
webpack教程
查看>>
安装composer时出现 failed to open stream: HTTP request failed!的错误
查看>>
禁用HBuilderX自动更新
查看>>
linux服务器安全优化之网站目录权限设置
查看>>
自己写的ajax工具
查看>>
ajax之POST请求就404,GET请求就正常200
查看>>
error: failed to push some refs to
查看>>
删除远端git分支
查看>>
<template> cannot be keyed. Place the key on real elements instead.
查看>>
npm install chromedriver 出错
查看>>