pytest:是否可以从代码中启用标记?
pytest: is it possible to enable a marker from code?
在调用 pytest 时使用 -m
参数可以仅 运行 由特定标记标记的测试。
例如pytest -m testsubset_a
.
我想知道...是否也可以从代码内部启用这些标记之一?例如pytest_collection_modifyitems()
期间的某处?
我问的原因是因为我正在开发一个测试工具,它将使用 pytest 标记来启用特定的测试子集,但过去没有这样做。因为我们想要向后兼容,所以我想在没有给出 -m
参数时启用默认子集(标记)。
您可以使用 config.option.markerexpr
.
从代码内部轻松访问传递给 -m
的标记
所以...当没有传递任何选项时默认设置就像
一样简单
def pytest_collection_modifyitems(config):
if config.option.markerexpr == "":
config.option.markerexpr == "mydefaultmarker"
在调用 pytest 时使用 -m
参数可以仅 运行 由特定标记标记的测试。
例如pytest -m testsubset_a
.
我想知道...是否也可以从代码内部启用这些标记之一?例如pytest_collection_modifyitems()
期间的某处?
我问的原因是因为我正在开发一个测试工具,它将使用 pytest 标记来启用特定的测试子集,但过去没有这样做。因为我们想要向后兼容,所以我想在没有给出 -m
参数时启用默认子集(标记)。
您可以使用 config.option.markerexpr
.
-m
的标记
所以...当没有传递任何选项时默认设置就像
一样简单def pytest_collection_modifyitems(config):
if config.option.markerexpr == "":
config.option.markerexpr == "mydefaultmarker"