Pytest - Xfail / Bỏ qua thử nghiệm

Trong chương này, chúng ta sẽ tìm hiểu về các bài kiểm tra Skip và Xfail trong Pytest.

Bây giờ, hãy xem xét các tình huống dưới đây -

  • Một thử nghiệm không phù hợp trong một thời gian do một số lý do.
  • Một tính năng mới đang được triển khai và chúng tôi đã thêm một thử nghiệm cho tính năng đó.

Trong những tình huống này, chúng tôi có tùy chọn bỏ qua bài kiểm tra hoặc bỏ qua bài kiểm tra.

Pytest sẽ thực hiện kiểm tra không thành công, nhưng nó sẽ không được coi là một phần không thành công hoặc vượt qua kiểm tra. Chi tiết của các bài kiểm tra này sẽ không được in ngay cả khi bài kiểm tra không thành công (hãy nhớ pytest thường in chi tiết bài kiểm tra không thành công). Chúng tôi có thể kiểm tra xfail bằng cách sử dụng điểm đánh dấu sau:

@pytest.mark.xfail

Bỏ qua một bài kiểm tra có nghĩa là bài kiểm tra sẽ không được thực hiện. Chúng tôi có thể bỏ qua các bài kiểm tra bằng cách sử dụng điểm đánh dấu sau:

@pytest.mark.skip

Sau đó, khi bài kiểm tra trở nên phù hợp, chúng tôi có thể xóa các điểm đánh dấu.

Chỉnh sửa test_compare.py chúng tôi đã phải bao gồm các điểm đánh dấu xfail và bỏ qua -

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

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

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

Thực hiện kiểm tra bằng lệnh sau:

pytest test_compare.py -v

Khi thực hiện, lệnh trên sẽ tạo ra kết quả sau:

test_compare.py::test_greater xfail
test_compare.py::test_greater_equal XPASS
test_compare.py::test_less SKIPPED
============================ 1 skipped, 1 xfailed, 1 xpassed in 0.06 seconds
============================