我们可以在conftest.py之外定义最火爆的钩子吗?

2022-03-01 00:00:00 python pytest hook

问题描述

我在下面的站点上做了一些研究,但我仍然没有确定是否可以在conftest.py文件中定义其他的pytest钩子(例如pytest_runtest_makereport)。 基本上,我试图弄清楚的是,例如,我是否通过在基类中定义一个挂钩来避免复制conftest.py文件,以便使用该基类的其他项目(或类)可以继承这些挂钩。

非常感谢。

我使用过的引用:

  • http://pytest.org/latest/plugins.html
  • http://pytest.org/latest/example/simple.html
  • 其他几个讨论挂钩的堆栈溢出页面

解决方案

推荐的方式是将此挂钩移动到适当的插件中,但您可以通过在项目的conftest文件中声明pytest_plugins变量来强制将模块解释为一个模块:

pytest_plugins = ['myproject.plugin'] # myproject.plugin contains hooks

或者您可以使用-p标志py.test

py.test -p myproject.module

请注意,最后一个选项也可以在pytest.ini中配置:

[pytest]
addopts = -p myproject.module

相关文章