TestNg显示器(一个)—–监听器,类型和配置使用—另外META-INF详细解释

TestNg显示器(一个)—–监听器,类型和配置使用—另外META-INF详细解释

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

原创文章,版权所有所有。转载,归因: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,事实上我们在project文件里常常看到这个它,可是似乎一部分人不大知道它的作用。

在研究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

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117523.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • rpm安装和卸载[通俗易懂]

    rpm安装和卸载[通俗易懂]一安装RPM是RedHat公司随RedhatLinux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。  1.安装软件:执行rpm-ivhrpm包名,如:  #rpm-ivhapache-1.3.6.i386.rpm  2.升级软件:执行rpm-Uvhrpm包名。  3.反安装:执行rpm-erpm包名。  4.查询软件包的详细信息:执行r

    2022年5月22日
    90
  • LeetCode1两数之和

    LeetCode1两数之和题目:给定一个整数数列,找出其中和为特定值的那两个数。你可以假设每个输入都只会有一种答案,同样的元素不能被重用。示例:给定nums=[2,7,11,15],target=9因为nums[0]+nums[1]=2+7=9所以返回[0,1]分析:可以直接遍历两遍数组,第一遍用target-nums[i],第二遍找nums数组中是否存在target-num…

    2022年5月7日
    36
  • Java中如何输入一个字符

    Java中如何输入一个字符在一次编写代码时需要让程序接收一个字符,当我写出scanner.next时,我惊奇的发现,Scanner类中没有定义读取char的方法!!!Java中的扫描器类支持nextInt(),nextLong(),nextDouble()等。但是没有nextChar()。要读取char,我们使用next().charAt(0)。next()函数返回输入中的下一个标记/字符作为字符串,并且charAt(0)函数返回该字符串中的第一个字符。所以,我们有了思路:先创建一个Scanner对象,调用Scanner对象

    2022年7月8日
    19
  • 如何和开发工程师交流

    如何和开发工程师交流

    2021年7月31日
    52
  • ubuntu 下 vlc ,smplayer 播放电影时字幕乱码解决方法

    ubuntu 下 vlc ,smplayer 播放电影时字幕乱码解决方法自:http://blog.sina.com.cn/s/blog_70545bad01015ky1.htmlubuntu下vlc,smplayer播放电影时出现乱码,令人头疼的很,不知道该怎么办,网上查了一些方法,但是没有一个能成功的,也许是我的方法不正确,没办法,只能将就看一下英文字幕,或者有时候看不懂的时候干脆切换到win7底下看,但这终究不是解决的方法,从网上查了很多方法,但是

    2022年7月11日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号