Pytest - การเรียกใช้ไฟล์
ในบทนี้เราจะเรียนรู้วิธีเรียกใช้ไฟล์ทดสอบไฟล์เดียวและไฟล์ทดสอบหลายไฟล์ เรามีไฟล์ทดสอบแล้วtest_square.pyสร้างขึ้น สร้างไฟล์ทดสอบใหม่test_compare.py ด้วยรหัสต่อไปนี้ -
def test_greater():
num = 100
assert num > 100
def test_greater_equal():
num = 100
assert num >= 100
def test_less():
num = 100
assert num < 200
ตอนนี้เพื่อเรียกใช้การทดสอบทั้งหมดจากไฟล์ทั้งหมด (2 ไฟล์ที่นี่) เราต้องเรียกใช้คำสั่งต่อไปนี้ -
pytest -v
คำสั่งดังกล่าวจะเรียกใช้การทดสอบจากทั้งสองอย่าง test_square.py และ test_compare.py. ผลลัพธ์จะถูกสร้างขึ้นดังนี้ -
test_compare.py::test_greater FAILED
test_compare.py::test_greater_equal PASSED
test_compare.py::test_less PASSED
test_square.py::test_sqrt PASSED
test_square.py::testsquare FAILED
================================================ FAILURES
================================================
______________________________________________ test_greater
______________________________________________
def test_greater():
num = 100
> assert num > 100
E assert 100 > 100
test_compare.py:3: AssertionError
_______________________________________________ testsquare
_______________________________________________
def testsquare():
num = 7
> assert 7*7 == 40
E assert (7 * 7) == 40
test_square.py:9: AssertionError
=================================== 2 failed, 3 passed in 0.07 seconds
===================================
ในการดำเนินการทดสอบจากไฟล์เฉพาะให้ใช้ไวยากรณ์ต่อไปนี้ -
pytest <filename> -v
ตอนนี้เรียกใช้คำสั่งต่อไปนี้ -
pytest test_compare.py -v
คำสั่งดังกล่าวจะดำเนินการทดสอบจากไฟล์เท่านั้น test_compare.py. ผลลัพธ์ของเราจะเป็น -
test_compare.py::test_greater FAILED
test_compare.py::test_greater_equal PASSED
test_compare.py::test_less PASSED
============================================== FAILURES
==============================================
____________________________________________ test_greater
____________________________________________
def test_greater():
num = 100
> assert num > 100
E assert 100 > 100
test_compare.py:3: AssertionError
================================= 1 failed, 2 passed in 0.04 seconds
=================================