前言
pytest 參數化的時候,希望能跳過部分測試用例,可以用 pytest.param 來實現。
parametrize 參數化示例
parametrize 參數化
import pytest
"""
作者:上海-悠悠
python QQ交流群:730246532
聯系微信/QQ: 283340479
"""
@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
"""
作者:上海-悠悠
python QQ交流群:730246532
聯系微信/QQ: 283340479
"""
@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 了。
報名咨詢wx:283340479 (已報名的同學學習過程中有問題,都可以協助解決)