5

i did some research in the sites below but i haven't still figured out if we can define pytest hooks (e.g. pytest_runtest_makereport) other than in the conftest.py file. basically, what i am trying to figure out is if i avoid duplicating conftest.py files by defining a hook inside a base class, for example, so other projects (or classes) consuming this base class can inherit these hooks.

thanks a lot.

references i've used:

2 Answers2

4

The recommended way would be to move this hooks into an appropriate plugin, but you can force a module to be interpreted as one by declaring a pytest_plugins variable in a conftest file in your project:

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

Or you can use the -p flag to py.test:

py.test -p myproject.module

Note that the last option can be configured in your pytest.ini as well:

[pytest]
addopts = -p myproject.module
Bruno Oliveira
  • 13,694
  • 5
  • 43
  • 41
0

There is a easy way to achieve that, just put all pytest hooks in a python file, and import it to the conftest.py file in your test pillar folder.

For example: in conftest.py of your test pillar

from custom_hooks import *

Then you can reuse all hooks.

And if you want to overwrite one, just define it again in conftest.py.

Li Feng
  • 931
  • 6
  • 14