Pytest - Tes Xfail / Lewati
Pada bab ini, kita akan belajar tentang tes Lewati dan Xfail di Pytest.
Sekarang, pertimbangkan situasi di bawah ini -
- Tes tidak relevan untuk beberapa waktu karena beberapa alasan.
- Sebuah fitur baru sedang diterapkan dan kami telah menambahkan pengujian untuk fitur tersebut.
Dalam situasi ini, kami memiliki opsi untuk membatalkan pengujian atau melewati pengujian.
Pytest akan menjalankan tes xfailed, tetapi tidak akan dianggap sebagai bagian yang gagal atau lulus tes. Rincian tes ini tidak akan dicetak meskipun tes gagal (ingat pytest biasanya mencetak detail tes yang gagal). Kita dapat melakukan xfail tes menggunakan penanda berikut -
@pytest.mark.xfail
Melewati tes berarti tes tidak akan dijalankan. Kita bisa melewatkan tes menggunakan penanda berikut -
@pytest.mark.skip
Nanti, jika tes menjadi relevan, kami dapat menghapus penanda.
Edit test_compare.py kita sudah harus menyertakan penanda xfail dan lewati -
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
Jalankan tes menggunakan perintah berikut -
pytest test_compare.py -v
Setelah dieksekusi, perintah di atas akan menghasilkan hasil sebagai berikut -
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
============================