Pytest - एन टेस्ट विफलताओं के बाद टेस्ट सूट बंद करो
वास्तविक परिदृश्य में, एक बार कोड का एक नया संस्करण तैनात करने के लिए तैयार है, इसे पहले पूर्व-ठेस / मंचन वातावरण में तैनात किया गया है। फिर उस पर एक टेस्ट सूट चलता है।
कोड केवल उत्पादन के लिए तैनात करने के लिए योग्य है यदि परीक्षण सूट पास हो। यदि परीक्षण विफलता है, चाहे वह एक हो या कई, कोड तैयार नहीं है।
इसलिए, क्या होगा अगर हम परीक्षण संख्या के परीक्षण के निष्पादन को रोकना चाहते हैं, क्योंकि n संख्या परीक्षण विफल होने के तुरंत बाद। यह मैक्सफेल का उपयोग करके पाइस्टेस्ट में किया जा सकता है।
परीक्षण की संख्या के फेल होने के तुरंत बाद टेस्ट सूट के निष्पादन को रोकने का सिंटैक्स इस प्रकार है -
pytest --maxfail = <num>
निम्न कोड के साथ एक फ़ाइल test_failure.py बनाएं।
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
सभी 3 परीक्षण इस परीक्षण फ़ाइल को निष्पादित करने में विफल होंगे। यहाँ, हम एक के बाद एक परीक्षण के निष्पादन को रोकने जा रहे हैं -
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
===============================
उपरोक्त परिणाम में, हम देख सकते हैं कि निष्पादन एक विफलता पर रोक दिया गया है।