Pytest - Mengelompokkan Tes
Dalam bab ini, kita akan belajar bagaimana mengelompokkan tes menggunakan penanda.
Pytest memungkinkan kita menggunakan penanda pada fungsi pengujian. Marker digunakan untuk mengatur berbagai fitur / atribut untuk menguji fungsi. Pytest menyediakan banyak penanda bawaan seperti xfail, skip dan parametrize. Selain itu, pengguna dapat membuat nama penanda sendiri. Penanda diterapkan pada pengujian menggunakan sintaks yang diberikan di bawah ini -
@pytest.mark.<markername>
Untuk menggunakan penanda, kita harus import pytestmodul dalam file pengujian. Kita dapat menentukan nama penanda kita sendiri untuk pengujian dan menjalankan pengujian yang memiliki nama penanda tersebut.
Untuk menjalankan tes yang ditandai, kita dapat menggunakan sintaks berikut -
pytest -m <markername> -v
-m <markername> mewakili nama penanda pengujian yang akan dijalankan.
Perbarui file uji kami test_compare.py dan test_square.pydengan kode berikut. Kami mendefinisikan 3 penanda– 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
Sekarang untuk menjalankan tes yang ditandai sebagai others, jalankan perintah berikut -
pytest -m others -v
Lihat hasil di bawah ini. Itu menjalankan 2 tes yang ditandai sebagaiothers.
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
==========================
Demikian pula, kami juga dapat menjalankan pengujian dengan penanda lain - bagus, bandingkan