Pytest - การจัดกลุ่มการทดสอบ

ในบทนี้เราจะเรียนรู้วิธีจัดกลุ่มการทดสอบโดยใช้เครื่องหมาย

Pytest อนุญาตให้เราใช้เครื่องหมายในฟังก์ชันทดสอบ เครื่องหมายใช้เพื่อตั้งค่าคุณสมบัติ / คุณลักษณะต่างๆเพื่อทดสอบฟังก์ชัน Pytest มีเครื่องหมาย inbuilt จำนวนมากเช่น xfail, skip และ parametrize นอกเหนือจากนั้นผู้ใช้สามารถสร้างชื่อเครื่องหมายของตนเองได้ เครื่องหมายถูกนำไปใช้กับการทดสอบโดยใช้ไวยากรณ์ที่ระบุด้านล่าง -

@pytest.mark.<markername>

ในการใช้เครื่องหมายเราต้อง import pytestโมดูลในไฟล์ทดสอบ เราสามารถกำหนดชื่อเครื่องหมายของเราเองในการทดสอบและเรียกใช้การทดสอบด้วยชื่อเครื่องหมายเหล่านั้น

ในการเรียกใช้การทดสอบที่ทำเครื่องหมายไว้เราสามารถใช้ไวยากรณ์ต่อไปนี้ -

pytest -m <markername> -v

-m <markername> แสดงถึงชื่อเครื่องหมายของการทดสอบที่จะดำเนินการ

อัปเดตไฟล์ทดสอบของเรา test_compare.py และ test_square.pyด้วยรหัสต่อไปนี้ เรากำลังกำหนด 3 เครื่องหมาย– great, square, others.

test_compare.py

import pytest
@pytest.mark.great
def test_greater():
   num = 100
   assert num > 100

@pytest.mark.great
def test_greater_equal():
   num = 100
   assert num >= 100

@pytest.mark.others
def test_less():
   num = 100
   assert num < 200

test_square.py

import pytest
import math

@pytest.mark.square
def test_sqrt():
   num = 25
   assert math.sqrt(num) == 5

@pytest.mark.square
def testsquare():
   num = 7
   assert 7*7 == 40

@pytest.mark.others
   def test_equality():
   assert 10 == 11

ตอนนี้เพื่อเรียกใช้การทดสอบที่ทำเครื่องหมายเป็น othersเรียกใช้คำสั่งต่อไปนี้ -

pytest -m others -v

ดูผลลัพธ์ด้านล่าง ดำเนินการทดสอบ 2 รายการที่ทำเครื่องหมายว่าothers.

test_compare.py::test_less PASSED
test_square.py::test_equality FAILED
============================================== FAILURES
==============================================
___________________________________________ test_equality
____________________________________________
   @pytest.mark.others
   def test_equality():
>  assert 10 == 11
E  assert 10 == 11
test_square.py:16: AssertionError
========================== 1 failed, 1 passed, 4 deselected in 0.08 seconds
==========================

ในทำนองเดียวกันเราสามารถเรียกใช้การทดสอบกับเครื่องหมายอื่น ๆ ได้เช่นกัน - เยี่ยมมากเปรียบเทียบ