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

use*_*718 6 testing pytest

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

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

我想要实现的是,当使用调用测试时(param1 == True and param2 == 2),测试应该失败;而其他任何参数组合都应该通过。

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

Bru*_*ira 7

参见带有参数的xfail

@pytest.mark.parametrize("param2, param2", [
    (1, True),
    (2, True),
    pytest.mark.xfail(reason='some bug')((1, False)),
])
def test_foo(self, param1, param2):
    ...
Run Code Online (Sandbox Code Playgroud)