pytest文件77 - parametrize 引數化跳過部分用例(pytest.param)
阿新 • • 發佈:2021-10-20
前言
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
..\..\..\..\..\demo\demo\aaa\test_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
..\..\..\..\..\demo\demo\aaa\test_x.py ..s
Test ignored..
total times: 0.14 seconds
============== 3 passed, 1 skipped in 0.14s ==============
執行結果可以看出1個 skipped 了。