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

Testing 如何使用Pytest将测试标记为仅具有特定参数的xfail,testing,pytest,Testing,Pytest,我是pytest的新手,我想知道如何在使用某些参数调用时将测试标记为“预期失败”。我将测试参数化如下: @pytest.mark.parametrize("param1", [False, True]) @pytest.mark.parametrize("param2", [1, 2, 3]) def test_foo(self, param1, param2): ... 我试图实现的是,当使用(param1==True和param2==2)调用测试时,测试应该失败;而任何其他参数组合

我是pytest的新手,我想知道如何在使用某些参数调用时将测试标记为“预期失败”。我将测试参数化如下:

@pytest.mark.parametrize("param1", [False, True])
@pytest.mark.parametrize("param2", [1, 2, 3])
def test_foo(self, param1, param2):
    ...
我试图实现的是,当使用
(param1==True和param2==2)
调用测试时,测试应该失败;而任何其他参数组合都应通过

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

见:

@pytest.mark.parametrize(“param2,param2”[
(1,正确),
(2,正确),
param(1,False,marks=pytest.mark.xfail(reason='somebug')),
])
def测试_foo(自身、参数1、参数2):
...

FYI供其他人参考:我试图在文档中使用
pytest.param
方法,但得到了“
param
不在模块中”类型的错误。不确定我的
pytest
版本是否过时,但如果您遇到这种情况,可以尝试一下。
pytest.mark.xfail
方法对我有效。你是对的,可能你有一个过时的pytest
pytest.param
是在
3.2
中引入的。这在3.1.2中似乎不起作用?尽管如此,我还是能够将xfail标记放在参数化之外(所有的案例都会失败)