Pytest - Hentikan Rangkaian Uji setelah Kegagalan Uji N

Dalam skenario nyata, setelah versi baru kode siap untuk diterapkan, itu pertama kali diterapkan ke lingkungan pra-prod / pementasan. Kemudian rangkaian pengujian dijalankan di atasnya.

Kode memenuhi syarat untuk diterapkan ke produksi hanya jika rangkaian pengujian berhasil. Jika ada kegagalan pengujian, apakah satu atau banyak, kode tidak siap produksi.

Oleh karena itu, bagaimana jika kita ingin menghentikan eksekusi rangkaian pengujian segera setelah sejumlah n pengujian gagal. Ini bisa dilakukan di pytest menggunakan maxfail.

Sintaks untuk menghentikan eksekusi rangkaian pengujian segera setelah n jumlah pengujian gagal adalah sebagai berikut -

pytest --maxfail = <num>

Buat file test_failure.py dengan kode berikut.

import pytest
import math

def test_sqrt_failure():
   num = 25
   assert math.sqrt(num) == 6

def test_square_failure():
   num = 7
   assert 7*7 == 40

def test_equality_failure():
   assert 10 == 11

Semua 3 tes akan gagal saat menjalankan file tes ini. Di sini, kami akan menghentikan eksekusi pengujian setelah satu kegagalan itu sendiri dengan -

pytest test_failure.py -v --maxfail = 1
test_failure.py::test_sqrt_failure FAILED
=================================== FAILURES
=================================== _______________________________________
test_sqrt_failure __________________________________________
   def test_sqrt_failure():
   num = 25
>  assert math.sqrt(num) == 6
E  assert 5.0 == 6
E  + where 5.0 = <built-in function sqrt>(25)
E  + where <built-in function sqrt>= math.sqrt
test_failure.py:6: AssertionError
=============================== 1 failed in 0.04 seconds
===============================

Pada hasil di atas, kita bisa melihat eksekusi dihentikan pada satu kegagalan.