我将
pytest
与 pytest-json-report
插件一起使用。我在 pytest_json_modifyreport
文件中有 conftest.py
挂钩。
当我运行命令
pytest --json-report
时,就可以了。但是当我运行简单的 pytest
命令时,它会产生以下结果:pluggy._manager.PluginValidationError: unknown hook 'pytest_json_modifyreport' in plugin
。
是否可以在不注释掉钩子的情况下消除该错误?
根据官方文档:
关于挂钩的说明
如果您使用 pytest_json_* 挂钩,尽管插件未安装或 不活动(不使用 --json-report),pytest 无法识别它,并且可能会失败并出现如下内部错误:
INTERNALERROR> pluggy.manager.PluginValidationError: unknown hook 'pytest_json_runtest_metadata' in plugin <module 'conftest' from 'conftest.py'>
您可以通过声明钩子实现可选来避免这种情况:
import pytest
@pytest.hookimpl(optionalhook=True)
def pytest_json_runtest_metadata(item, call):
...
如此处所述,更新到 pytest 7 后,Pytest 无法工作 尝试一下
pip install pytest-html