除了系统提过的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")
执行结果:
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!