如何找到测试使用的灯具?

kel*_*oti 5 python pytest python-3.x

我想根据他们使用的灯具来自动标记测试。例如,如果测试使用名为的灯具spark,我想添加一个名为的标记,uses_spark以便我可以自动忽略它们。

我知道我可以使用pytest_collection_modifyitemsconftest.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):
  ???
Run Code Online (Sandbox Code Playgroud)

我该如何实施uses_spark_fixture

hoe*_*ing 3

每个项目都在属性中存储已用灯具的列表fixturenames。因此,检查非常简单:

def pytest_collection_modifyitems(items):
    for item in items:
        if 'spark_fixture' in item.fixturenames:
            item.add_marker(pytest.mark.spark)
Run Code Online (Sandbox Code Playgroud)