前言
pytest 参数化的时候,希望能跳过部分测试用例,可以用 pytest.param 来实现。
parametrize 参数化示例
parametrize 参数化
import pytest
@pytest.mark.parametrize('input1, input2, expected', [
["a", "b", "ab"],
["1", "2", "12"],
[2, 3, 5],
[1, 3, 4],
])
def test_foo(input1, input2, expected):
assert input1 + input2 == expected
运行结果
collected 4 items
..........demodemoaaa est_x.py ....
total times: 0.13 seconds
================ 4 passed in 0.14s ==================
pytest.param 跳过用例
如果想跳过其中部分用例,可以用 pytest.param()来实现,给参数化中单个用例加 marks 标记 skip。
import pytest
@pytest.mark.parametrize('input1, input2, expected', [
["a", "b", "ab"],
["1", "2", "12"],
pytest.param(2, 3, 5, marks=pytest.mark.skip),
[1, 3, 4],
])
def test_foo(input1, input2, expected):
assert input1 + input2 == expected
运行结果
collected 4 items
..........demodemoaaa est_x.py ..s
Test ignored..
total times: 0.14 seconds
============== 3 passed, 1 skipped in 0.14s ==============
运行结果可以看出1个 skipped 了。