【发布时间】:2020-11-03 18:40:34
【问题描述】:
所以我在pytest.ini 文件中定义了自定义标记
[pytest]
markers =
foomark: Mark a test as foo
每当运行标有foomark 的测试时,我还需要通过一组特殊的钩子脚本实现来使用/执行该测试,这些脚本实现进入conftest.py。
def pytest_foo_hook(request):
print("This is a foo-marked test.")
pytest.ini 位于项目根目录中。 conftest.py 必须放在每个包含项目测试/测试套件的子文件夹中。问题在于,标有foomark 的测试分布在多个包中,并且我需要为每个包添加钩子实现,从而产生大量样板代码。也不能为所有测试定义钩子脚本。
有没有办法将标记与一组 pytest 钩子脚本实际链接,以仅在标记有 foomark 的测试上执行?
【问题讨论】:
-
你不能只检查钩子中的标记(使用类似
request.node.iter_markers())吗?
标签: python unit-testing pytest