哪里放置pytest_generate_tests钩子

时间:2019-08-20 21:50:40

标签: pytest

我编写了一个装饰器,可以生成参数化的函数,例如in the docs

def pytest_generate_tests(metafunc):
    if not hasattr(metafunc.function, '_bdd_spec_test_runs'):
        return
    metafunc.parametrize(('name', 'index'), [(n, i) for (i, n) in enumerate(metafunc.function._bdd_spec_test_runs)])

如果在文件底部使用装饰器进行测试,则可以使用它。但是,如果我将其移至其自己的模块(例如,与装饰器本身一起),则会导致我的测试无法通过。

这似乎是因为在pytest看到钩子时,它尚未收集目标测试。那我应该把这个功能放在哪里呢?有什么办法可以告诉pytest:“在这里,这是您收集完所有所有测试后应该使用的钩子。”

0 个答案:

没有答案