अपने कोड का परीक्षण करना सॉफ़्टवेयर विकास जीवनचक्र का एक महत्वपूर्ण हिस्सा है, और इसे हमेशा उत्पादन के लिए अनुप्रयोग को परिनियोजित करने से पहले आना चाहिए। परीक्षण महत्वपूर्ण है क्योंकि यह कोड में बग को ट्रैक करने और खोजने में मदद करता है।
परीक्षण यह पुष्टि करने के लिए स्रोत कोड की अलग-अलग इकाइयों की जाँच करने का एक तरीका है कि यह उत्पादन के लिए शिपिंग कोड से पहले बेहतर तरीके से काम करता है। यह ध्यान रखना महत्वपूर्ण है कि यूनिट परीक्षण के दौरान उपयोगकर्ताओं के लिए स्रोत फ़ाइल को उत्पादन में तैनात करना अनावश्यक है।
यह सबसे अच्छा होगा यदि आपको यह भी याद रहे कि परीक्षण पायथन के लिए विशिष्ट नहीं है।
यह लेख आपको सिखाएगा कि परीक्षण के दौरान आपका कोड पास होता है या विफल होता है, यह जांचने के लिए पायथन यूनिट परीक्षणों का उपयोग करके बुनियादी परीक्षण कैसे लिखें।
इस ट्यूटोरियल को पूरा करने के लिए, आपको निम्नलिखित की आवश्यकता है:
लेखन परीक्षण तार्किक कार्यक्रम हैं जो एक प्रोग्रामर कोडबेस का परीक्षण करने के लिए लिखता है। विकास के दौरान, क्यूए को उपयोगकर्ता को उत्पाद भेजने से पहले ऐप में सुधार की आवश्यकता को उजागर करने की प्रक्रिया को समझना चाहिए। ऐसा करने के लिए, आइए एक फ़ंक्शन लिखें जो दो संख्याओं को जोड़ता है और परिणाम देता है।
शुरू करने के लिए, इस ट्यूटोरियल में परीक्षण लिखने के लिए सभी फाइलों वाला एक फ़ोल्डर बनाएं। इस नए फ़ोल्डर में फ़ंक्शन लिखने के लिए main.py
नाम की एक फ़ाइल जोड़ें।
# main.py # Add the sum of two numbers def add_sum(num1, num2): return int(num1) + int(num2)
अब जब हमारे पास उपरोक्त कोड ब्लॉक है, तो जांच लें कि कोड एक फ़ंक्शन लिखकर काम करता है जो उपयोगकर्ताओं को इनपुट प्रॉम्प्ट के माध्यम से अपना वांछित मान दर्ज करने की अनुमति देता है। फ़ंक्शन add_sum()
दो संख्याओं को पैरामीटर के रूप में लेता है और योग प्राप्त करने के लिए ऑपरेटर + चिह्न का उपयोग करके मान देता है। किसी अन्य फ़ाइल में, result.py
, निम्न कोड को कॉपी और पेस्ट करें:
# result.py from main import add_sum print("Please enter the two values\n") num1 = int(input("Please enter the first number: \n")) num2 = int(input("Please enter the second number: \n")) total = add_sum(num1, num2) print(f"The sum of the values is {total}")
यह कोड ब्लॉक निम्न कार्य करता है:
add_sum()
main.py
से आयात करता हैint
विधि का उपयोग करके इनपुट प्रॉम्प्ट मान को पूर्णांक में परिवर्तित किया गया है
पायथन एक अंतर्निहित मानक पुस्तकालय मॉड्यूल के साथ आता है जिसे यूनीटेस्ट कहा जाता है, जो आपके कोड के लिए परीक्षण बनाने और चलाने के लिए उपकरण प्रदान करता है। यूनिट टेस्टिंग का मुख्य उद्देश्य यह जांचना है कि क्या सभी कोड फंक्शन उम्मीद के मुताबिक काम करते हैं।
एक परीक्षण मामला परीक्षण नाम वर्ग में उपलब्ध कार्यात्मकताओं के साथ, एक परीक्षण के साथ काम करने का एक मानक तरीका है। साथ ही, व्यक्तिगत इकाई परीक्षण के लिए घटक कोड में एक परीक्षण मामला आवश्यक है। यह कोड चलाने के तुरंत बाद विफलताओं की जांच करने और रिपोर्ट करने के लिए विभिन्न मुखर विधियों का उपयोग करता है।
यह खंड परीक्षणों की एक श्रृंखला लिखने के बारे में है।
add_sum()
फ़ंक्शन के लिए सभी परीक्षण मामलों को लिखने के लिए परीक्षण फ़ाइल बनाने से पहले, आइए main.py
को अपडेट करें। निम्नलिखित कोड को कॉपी और पेस्ट करें:
# main.py def add_sum(num1, num2): try: return int(num1) + int(num2) except ValueError as err: return err
कोड ब्लॉक try/except
कथन का उपयोग करता है जो आपके कोड में अपवादों को संभालता है यदि ब्लॉक को छोड़कर कोई त्रुटि है तो आपको अलर्ट करता है। प्रोग्रामिंग में यह विधि त्रुटियों को पकड़ने में मदद करती है और आपको उस विशिष्ट लाइन नंबर की ओर इशारा करती है जहां त्रुटि हुई थी।
अब, उसी निर्देशिका में एक परीक्षण फ़ाइल बनाएं जिसे test.py कहा जाता है। इस फ़ाइल में, निम्न कोड को कॉपी और पेस्ट करें:
# test.py import unittest from main import add_sum class MainTest(unittest.TestCase): def test_do_stuff(self): result = add_sum(5, 10) self.assertEqual(result, 15) if __name__ == '__main__': unittest.main()
जैसा कि उपरोक्त कोड के ब्लॉक में दिखाया गया है, निम्न होता है:
हर विधि को "test_" से शुरू करना याद रखें क्योंकि test.py स्वचालित रूप से चलता है। **
**
जब भी आप कोई परीक्षण चलाते हैं, तो सभी जाँचों के कंसोल में एक OK संदेश के साथ पास होने की अपेक्षा की जाती है, जिसका अर्थ है कि यह सफल रहा।
Ran 1 test in 0.000s OK
विकास और परीक्षण के दौरान, विफलता के लिए परिदृश्य होना चाहिए। ऐसा करने से पता चलता है कि हर प्रोग्राम में कमजोरियां और बग हैं।
उसी फ़ाइल में, test.py
, आइए कोड को संशोधित करें और निम्नलिखित में पेस्ट करें:
# test.py import unittest from main import add_sum class MainTest(unittest.TestCase): # other test def test_do_stuff2(self): result = add_sum("hulu", 5) self.assertEqual(result, 5) if __name__ == '__main__': unittest.main()
इस कोड को चलाने का परिणाम कुछ इस तरह दिखता है:
FAIL: test_do_stuff2 (__main__.MainTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "test.py", line 11, in test_do_stuff3 self.assertEqual(result, 5) AssertionError: ValueError("invalid literal for int() with base 10: 'hulu'") != 5
उपरोक्त आउटपुट से, त्रुटि कोड को पढ़कर और तदनुसार कोड को सही करके निम्नलिखित को हल किया जा सकता है:
जब आपके पास कई फाइलें और अलग-अलग मॉड्यूल बनाए गए हों, और आपको एक ही फाइल को डिफ़ॉल्ट रूप से आज़माने के बजाय उन सभी का एक साथ परीक्षण करने की आवश्यकता हो, तो आप सभी परीक्षणों को एक साथ चलाने के लिए इस कमांड का उपयोग कर सकते हैं।
python3 -m unittest
साथ ही, परीक्षण के बारे में अधिक जानकारी प्राप्त करने के लिए, ध्वज -v (वर्बोज़) के साथ कमांड का उपयोग करें, जो आपको ठीक और असफल परीक्षण दिखाता है।
python3 -m unittest -v
परिणाम कुछ इस तरह दिखता है:
test_do_stuff (test.MainTest) ... ok test_do_stuff2 (test.MainTest) ... ok ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK
यूनिट परीक्षण क्यूए और डेवलपर्स द्वारा लिखित और शिपिंग कोड में शामिल एक अभ्यास होना चाहिए, जब भी उपयोगकर्ताओं को ऐप का उपयोग करने से पहले कोई नई सुविधा जारी की जाती है। नियमित रूप से या समय-समय पर परीक्षण करना एक विचार नहीं होना चाहिए, बल्कि इस बात पर भरोसा करना चाहिए कि ऐप कितना कार्यात्मक और कुशल है।
इस लेख ने आपको एक सिंहावलोकन दिया कि विकास में परीक्षण क्यों आवश्यक हैं और उत्पादन में परिनियोजन से पहले कोड फ़ंक्शन की जांच करने और उपयोगकर्ताओं के लिए एक मानक विनिर्देश को पूरा करने के लिए यूनिट परीक्षणों का उपयोग कैसे करें।