Pytest 自定义HOOK函数

除了系统提过的HOOK函数外,也可以通过自定义HOOK的方式实现想要的功能。

首先创建一个py文件,里面定义自己的HOOK函数,主要pytest里面的hook函数必须以pytest开头。

python 复制代码
#myhook.py
 
 
def pytest_myhook(user):
    """自定义HOOK函数"""
 
 
def pytest_myhook2():
    """自定义HOOK函数"""

其次创建自己的插件类,user类的重写__init__方法,注册钩子的时候带入pytest的config配置。在该方法中设置钩子入口:self

.config.hook.pytest_myhook().

python 复制代码
#插件类
class user:
    name = "herry"
    age = 18
 
 
    def __init__(self, config):
        self.config = config
        self.config.hook.pytest_myhook(user=self)
        self.config.hook.pytest_myhook2()
 
 
 
 
@pytest.mark.A
def test_B():
    print("BBB")
 
 
 
 
if __name__ == "__main__":
    pytest.main([("pytest模块分享之hook2.py"), ("-s"), ("-m=A")])

最后在conftest.py文件中注册钩子和引用实现它。其中注册方法要放在最前面。

先添加构造,在注册插件,

python 复制代码
def pytest_addhooks(pluginmanager):
    from . import myhook
 
 
    pluginmanager.add_hookspecs(myhook)
 
 
 
 
def pytest_configure(config):
    config.user_ = user(config)
    config.pluginmanager.register(config.user_)
 
 
 
 
def pytest_myhook(user):
    print("username------%s"%user.name)
    print("age------%s" % user.age)
 
 
def pytest_myhook2():
    print("myhook2")

执行结果:

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
学习的学习者9 分钟前
CS课程项目设计22:基于Transformer的智能机器翻译算法
人工智能·python·深度学习·transformer·机器翻译
小陈phd17 分钟前
langGraph从入门到精通(四)——基于LangGraph的State状态模式设计
python·microsoft·状态模式
38242782728 分钟前
JS正则表达式实战:核心语法解析
开发语言·前端·javascript·python·html
Engineer邓祥浩29 分钟前
设计模式学习(10) 23-8 装饰者模式
python·学习·设计模式
ybdesire40 分钟前
Joern服务器启动后cpgqls-client结合python编程进行扫描
运维·服务器·python
autho44 分钟前
conda
linux·python·conda
知乎的哥廷根数学学派1 小时前
基于注意力机制的多尺度脉冲神经网络旋转机械故障诊断(西储大学轴承数据,Pytorch)
人工智能·pytorch·python·深度学习·神经网络·机器学习
测试19981 小时前
用Postman测WebSocket接口
自动化测试·软件测试·python·websocket·测试工具·接口测试·postman
l1t1 小时前
数独优化求解C库tdoku-lib的使用
c语言·开发语言·python·算法·数独
小二·1 小时前
Python Web 开发进阶实战:微前端架构初探 —— 基于 Webpack Module Federation 的 Vue 微应用体系
前端·python·架构