我们可以在conftest.py之外定义pytest钩子吗?

时间:2015-02-26 21:23:27

标签: python hook pytest

我在下面的网站上做了一些研究但是我还没弄清楚我们是否可以在conftest.py文件中定义pytest钩子(例如pytest_runtest_makereport)。 基本上,我想弄清楚的是,如果我通过在基类中定义一个钩子来避免重复conftest.py文件,例如,那么使用这个基类的其他项目(或类)可以继承这些钩子。

非常感谢。

我用过的参考文献:

2 个答案:

答案 0 :(得分:3)

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

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

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

py.test -p myproject.module

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

[pytest]
addopts = -p myproject.module

答案 1 :(得分:0)

有一种简单的方法可以实现,只需将所有pytest挂钩放在python文件中,然后将其导入测试支柱文件夹中的conftest.py文件。

例如:在测试支柱的conftest.py中

from custom_hooks import *

然后你可以重复使用所有钩子。

如果你想覆盖一个,只需在conftest.py中再次定义它。