如何使用 Pytest 将测试标记为仅使用特定参数的 xfail

问题描述 投票:0回答:1

我对 pytest 很陌生,我想知道如何在使用某些参数调用时将测试标记为“预期失败”。我像这样参数化测试:

@pytest.mark.parametrize("param1", [False, True])
@pytest.mark.parametrize("param2", [1, 2, 3])
def test_foo(self, param1, param2):
    ...

我想要实现的是,当使用

(param1 == True and param2 == 2)
调用测试时,测试应该失败;而任何其他参数组合都应该通过。

但我还没有找到任何方法来做到这一点。你有什么想法吗?

testing pytest
1个回答
55
投票

参见 xfail with parametrize:

@pytest.mark.parametrize(("param1", "param2"), [
    (1, True),
    (2, True),
    pytest.param(1, False, marks=pytest.mark.xfail(reason='some bug')),
])
def test_foo(self, param1: int, param2: bool):
    ...
© www.soinside.com 2019 - 2024. All rights reserved.