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