pytest 自定义HOOK函数
2023-12-14 03:48:21
?除了系统提过的HOOK函数外,也可以通过自定义HOOK的方式实现想要的功能。
首先创建一个py文件,里面定义自己的HOOK函数,主要pytest里面的hook函数必须以pytest开头。
#myhook.py
def pytest_myhook(user):
"""自定义HOOK函数"""
def pytest_myhook2():
"""自定义HOOK函数"""
其次创建自己的插件类,user类的重写__init__方法,注册钩子的时候带入pytest的config配置。在该方法中设置钩子入口:self
.config.hook.pytest_myhook().
#插件类
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文件中注册钩子和引用实现它。其中注册方法要放在最前面。
先添加构造,在注册插件,
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")
执行结果:
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
文档获取方式:
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取
文章来源:https://blog.csdn.net/YJT1002/article/details/132739718
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!