除了系统提过的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")
执行结果:
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末领取】
【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图+全套资料】
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
![](https://i-blog.csdnimg.cn/blog_migrate/e25259918d6bb76c7393bca547c58337.jpeg)
四、App自动化项目实战
五、一线大厂简历
![](https://i-blog.csdnimg.cn/blog_migrate/6db978a391a36ef60381ee4912cf254c.png)
六、测试开发DevOps体系
七、常用自动化测试工具
![](https://i-blog.csdnimg.cn/blog_migrate/1743024628de971652d99798a887342e.jpeg)
八、JMeter性能测试
九、总结(尾部小惊喜)
生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!
生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!
只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!