我想根据测试使用的灯具自动标记测试。例如,如果测试使用名为spark
的灯具,我想添加一个名为uses_spark
的标记,以便我可以自动忽略它们。
我知道我可以在pytest_collection_modifyitems
中使用conftest.py
来添加标记。
def pytest_collection_modifyitems(items):
for item in items:
if uses_spark_fixture(item):
item.add_marker(pytest.mark.spark)
def uses_spark_fixture(item):
???
如何实现uses_spark_fixture
?
答案 0 :(得分:3)
每个项目在fixturenames
属性中存储已用灯具的列表。因此检查非常简单:
def pytest_collection_modifyitems(items):
for item in items:
if 'spark_fixture' in item.fixturenames:
item.add_marker(pytest.mark.spark)