我编写了一个装饰器,可以生成参数化的函数,例如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:“在这里,这是您收集完所有所有测试后应该使用的钩子。”