如何用标记标记单个参数化测试?

Rek*_*a R 8 python ui-automation pytest pytest-django

我一直在尝试使用 @pytest.mark.parametrize 参数化我的测试,并且我有一个营销人员 @pytest.mark.test("1234"),我使用测试标记中的值将结果发布到 JIRA。请注意为每个 test_data 的标记指定的值都会发生变化。本质上,代码如下所示。

@pytest.mark.foo
@pytest.mark.parametrize(("n", "expected"),[
    (1, 2),
    (2, 3)])
def test_increment(n, expected):
     assert n + 1 == expected
Run Code Online (Sandbox Code Playgroud)

我想做类似的事情

@pytest.mark.foo
@pytest.mark.parametrize(("n", "expected"), [
    (1, 2,@pytest.mark.test("T1")),
    (2, 3,@pytest.mark.test("T2"))
])
Run Code Online (Sandbox Code Playgroud)

考虑到标记的值预计会随着每次测试而变化,如何在使用参数化测试时添加标记?

pav*_*man 12

文档中对此进行了解释:https://docs.pytest.org/en/stable/example/markers.html#marking-individual-tests-when-using-parametrize

也在这里展示它,它是:

@pytest.mark.foo
@pytest.mark.parametrize(("n", "expected"), [
    pytest.param(1, 2, marks=pytest.mark.T1),
    pytest.param(2, 3, marks=pytest.mark.T2),
    (4, 5)
])
Run Code Online (Sandbox Code Playgroud)