概述
在自動化測試中,@pytest.mark.parametrize
不僅僅能用來為測試函數提供多組輸入數據,還能配合其他功能實現更復雜的測試邏輯。本文將帶你深入了解 @pytest.mark.parametrize
的多種常見用法,助你在不同場景下寫出更高效、更清晰的測試代碼
基礎用法回顧:單個參數化
這是最常見的用法,用于為測試函數傳入多組參數。
可參考前面的講解:Pytest中的參數化測試:提升效率的利器
import pytest@pytest.mark.parametrize("a, b, expected", [(2, 3, 5),(-1, 1, 0),(0, 0, 0)
])
def test_add(a, b, expected):assert a + b == expected
高級用法
嵌套參數化(多個參數標記)
如果你希望對多個維度進行組合測試,可以使用 多個 parametrize
裝飾器,Pytest 會自動進行笛卡爾積組合。
import pytest@pytest.mark.parametrize("a", [1, 2])
@pytest.mark.parametrize("b", [3, 4])
def test_nested_parametrize(a, b):print(f"a={a}, b={b}")assert a + b > 0
這會生成 2 × 2 = 4 個測試用例:
test_nested_parametrize[a=1-b=3]
test_nested_parametrize[a=1-b=4]
test_