Pytest-parameterizing-tests
提供:Dev Guides
Pytest-テストのパラメーター化
テストのパラメーター化は、複数の入力セットに対してテストを実行するために行われます。 私たちは次のマーカーを使用してこれを行うことができます-
@pytest.mark.parametrize
以下のコードを test_multiplication.py というファイルにコピーします-
import pytest
@pytest.mark.parametrize("num, output",[(1,11),(2,22),(3,35),(4,44)])
def test_multiplication_11(num, output):
assert 11*num == output
ここでは、テストは入力に11を乗算し、結果を期待される出力と比較します。 テストには4セットの入力があり、それぞれに2つの値があります。1つは11で乗算される数で、もう1つは期待される結果です。
次のコマンドを実行してテストを実行します-
Pytest -k multiplication -v
上記のコマンドは、次の出力を生成します-
test_multiplication.py::test_multiplication_11[1-11] PASSED
test_multiplication.py::test_multiplication_11[2-22] PASSED
test_multiplication.py::test_multiplication_11[3-35] FAILED
test_multiplication.py::test_multiplication_11[4-44] PASSED
============================================== FAILURES
==============================================
_________________ test_multiplication_11[3-35] __________________
num = 3, output = 35
@pytest.mark.parametrize("num, output",[(1,11),(2,22),(3,35),(4,44)])
def test_multiplication_11(num, output):
> assert 11*num == output
E assert (11 * 3) == 35
test_multiplication.py:5: AssertionError
============================== 1 failed, 3 passed, 8 deselected in 0.08 seconds
==============================