Pytest - Kiểm tra tham số
Việc tham số hóa một bài kiểm tra được thực hiện để chạy bài kiểm tra với nhiều bộ đầu vào. Chúng tôi có thể làm điều này bằng cách sử dụng điểm đánh dấu sau:
@pytest.mark.parametrize
Sao chép mã dưới đây vào một tệp có tên 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
Ở đây, phép thử nhân một đầu vào với 11 và so sánh kết quả với đầu ra mong đợi. Bài kiểm tra có 4 bộ đầu vào, mỗi bộ có 2 giá trị - một là số cần nhân với 11 và bộ kia là kết quả mong đợi.
Thực hiện kiểm tra bằng cách chạy lệnh sau:
Pytest -k multiplication -v
Lệnh trên sẽ tạo ra kết quả sau:
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
==============================