来自命令行的 xfail pytest 测试

Posted

技术标签:

【中文标题】来自命令行的 xfail pytest 测试【英文标题】:xfail pytest tests from the command line 【发布时间】:2021-10-16 06:29:00 【问题描述】:

我有一个测试套件,我需要将一些测试标记为 xfail,但我无法编辑测试函数本身来添加标记。是否可以使用 pytest 从命令行指定某些测试应该是 xfail ?或者除此之外,至少通过向 pytest.ini 或 conftest.py 添加一些内容?

【问题讨论】:

【参考方案1】:

我不知道执行此操作的命令行选项,但如果您可以过滤掉相应的测试,您可以实现 pytest_collection_modifyitems 并在这些测试中添加一个 xfail 标记:

conftest.py


names_to_be_xfailed = ("test_1", "test_3")

def pytest_collection_modifyitems(config, items):
    for item in items:
        if item.name in names_to_be_xfailed:
            item.add_marker("xfail")

或者,如果名称不是唯一的,您也可以按 item.nodeid 过滤。

【讨论】:

这看起来可行。现在有一个后续问题:有没有办法从命令行设置一个 conftest.py 文件? 我不这么认为,conftest.py 必须在它所应用的测试的根路径中。

以上是关于来自命令行的 xfail pytest 测试的主要内容,如果未能解决你的问题,请参考以下文章

如何将命令行参数从pytest传递给代码

python-pytest学习-标记失败xfail

python-pytest学习-标记失败xfail

14-pytest-标记失败xfail使用

45-pytest-pytest.main()使用

pytest-16-用例a失败,跳过用例b和c并标记失败xfail