当前位置:   article > 正文

Pytest 自定义HOOK函数

Pytest 自定义HOOK函数

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

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

  1. #myhook.py
  2. def pytest_myhook(user):
  3. """自定义HOOK函数"""
  4. def pytest_myhook2():
  5. """自定义HOOK函数"""

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

.config.hook.pytest_myhook().

  1. #插件类
  2. class user:
  3. name = "herry"
  4. age = 18
  5. def __init__(self, config):
  6. self.config = config
  7. self.config.hook.pytest_myhook(user=self)
  8. self.config.hook.pytest_myhook2()
  9. @pytest.mark.A
  10. def test_B():
  11. print("BBB")
  12. if __name__ == "__main__":
  13. pytest.main([("pytest模块分享之hook2.py"), ("-s"), ("-m=A")])

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

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

  1. def pytest_addhooks(pluginmanager):
  2. from . import myhook
  3. pluginmanager.add_hookspecs(myhook)
  4. def pytest_configure(config):
  5. config.user_ = user(config)
  6. config.pluginmanager.register(config.user_)
  7. def pytest_myhook(user):
  8. print("username------%s"%user.name)
  9. print("age------%s" % user.age)
  10. def pytest_myhook2():
  11. print("myhook2")

执行结果:

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

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号