Pytest - Nhóm các bài kiểm tra

Trong chương này, chúng ta sẽ học cách nhóm các bài kiểm tra bằng cách sử dụng các điểm đánh dấu.

Pytest cho phép chúng tôi sử dụng các điểm đánh dấu trên các chức năng kiểm tra. Các điểm đánh dấu được sử dụng để đặt các tính năng / thuộc tính khác nhau để kiểm tra các chức năng. Pytest cung cấp nhiều điểm đánh dấu sẵn có như xfail, bỏ qua và tham số. Ngoài ra, người dùng có thể tạo tên điểm đánh dấu của riêng họ. Điểm đánh dấu được áp dụng trong các bài kiểm tra bằng cú pháp đưa ra bên dưới:

@pytest.mark.<markername>

Để sử dụng các điểm đánh dấu, chúng ta phải import pytestmô-đun trong tệp thử nghiệm. Chúng tôi có thể xác định tên điểm đánh dấu của riêng mình cho các bài kiểm tra và chạy các bài kiểm tra có các tên điểm đánh dấu đó.

Để chạy các bài kiểm tra đã đánh dấu, chúng ta có thể sử dụng cú pháp sau:

pytest -m <markername> -v

-m <markername> đại diện cho tên đánh dấu của các bài kiểm tra sẽ được thực hiện.

Cập nhật các tệp thử nghiệm của chúng tôi test_compare.pytest_square.pyvới đoạn mã sau. Chúng tôi đang xác định 3 điểm đánh dấu– 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

Bây giờ để chạy các bài kiểm tra được đánh dấu là others, chạy lệnh sau:

pytest -m others -v

Xem kết quả bên dưới. Nó đã chạy 2 bài kiểm tra được đánh dấu là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
==========================

Tương tự, chúng tôi cũng có thể chạy thử nghiệm với các điểm đánh dấu khác - tuyệt vời, hãy so sánh