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 個值 - 一個是要與 11 相乘的數字,另一個是預期結果。

透過執行以下命令執行測試 −

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
==============================
廣告