标记 pytest.Item 个子类

Marking a pytest.Item subclass

我正在编写一个测试套件,它以类似于 the YAML example in the documentation 的方式从外部(非 Python)文件加载测试。但是,我无法弄清楚 pytest.mark.foo 应该调用什么来将特定项目标记为 "foo"。显然我不能像文档中那样将它用作装饰器(没有单一的装饰功能!),但我假设做类似于 yield pytest.mark.foo(YamlItem(name, self, spec)) 的事情是合理的,但这不是工作。有什么方法可以标记这样的项目吗?

您可以使用 Node.add_marker 函数(它是 pytest.Item 的超类):

def add_marker(self, marker):
    """ dynamically add a marker object to the node.

    ``marker`` can be a string or pytest.mark.* instance.
    """