paint-brush
पायथन में यूनिट परीक्षण को समझनाद्वारा@terieyenike
3,052 रीडिंग
3,052 रीडिंग

पायथन में यूनिट परीक्षण को समझना

द्वारा Teri6m2022/09/04
Read on Terminal Reader
Read this story w/o Javascript

बहुत लंबा; पढ़ने के लिए

अपने कोड का परीक्षण करना सॉफ्टवेयर विकास जीवनचक्र का एक महत्वपूर्ण हिस्सा है, और इसे हमेशा उत्पादन के लिए एप्लिकेशन को तैनात करने से पहले आना चाहिए। यूनिट परीक्षण तार्किक प्रोग्राम हैं जो एक प्रोग्रामर कोडबेस का परीक्षण करने के लिए लिखता है। परीक्षण महत्वपूर्ण है क्योंकि यह कोड में बग को ट्रैक करने और खोजने में मदद करता है। यह लेख आपको सिखाएगा कि परीक्षण के दौरान आपका कोड पास होता है या नहीं, यह जांचने के लिए पायथन यूनिट परीक्षणों का उपयोग करके बुनियादी परीक्षण कैसे लिखें। यूनिट टेस्टिंग का मुख्य उद्देश्य यह जांचना है कि क्या सभी कोड फंक्शन उम्मीद के मुताबिक काम करते हैं।
featured image - पायथन में यूनिट परीक्षण को समझना
Teri HackerNoon profile picture


अपने कोड का परीक्षण करना सॉफ़्टवेयर विकास जीवनचक्र का एक महत्वपूर्ण हिस्सा है, और इसे हमेशा उत्पादन के लिए अनुप्रयोग को परिनियोजित करने से पहले आना चाहिए। परीक्षण महत्वपूर्ण है क्योंकि यह कोड में बग को ट्रैक करने और खोजने में मदद करता है।


परीक्षण यह पुष्टि करने के लिए स्रोत कोड की अलग-अलग इकाइयों की जाँच करने का एक तरीका है कि यह उत्पादन के लिए शिपिंग कोड से पहले बेहतर तरीके से काम करता है। यह ध्यान रखना महत्वपूर्ण है कि यूनिट परीक्षण के दौरान उपयोगकर्ताओं के लिए स्रोत फ़ाइल को उत्पादन में तैनात करना अनावश्यक है।


यह सबसे अच्छा होगा यदि आपको यह भी याद रहे कि परीक्षण पायथन के लिए विशिष्ट नहीं है।


यह लेख आपको सिखाएगा कि परीक्षण के दौरान आपका कोड पास होता है या विफल होता है, यह जांचने के लिए पायथन यूनिट परीक्षणों का उपयोग करके बुनियादी परीक्षण कैसे लिखें।


आवश्यक शर्तें

इस ट्यूटोरियल को पूरा करने के लिए, आपको निम्नलिखित की आवश्यकता है:

  • पायथन कोड लिखने का ज्ञान
  • की स्थापना पायथन कार्यक्रम आपकी स्थानीय मशीन पर
  • आपकी पसंद का एक कोड संपादक


शुरू करना

लेखन परीक्षण तार्किक कार्यक्रम हैं जो एक प्रोग्रामर कोडबेस का परीक्षण करने के लिए लिखता है। विकास के दौरान, क्यूए को उपयोगकर्ता को उत्पाद भेजने से पहले ऐप में सुधार की आवश्यकता को उजागर करने की प्रक्रिया को समझना चाहिए। ऐसा करने के लिए, आइए एक फ़ंक्शन लिखें जो दो संख्याओं को जोड़ता है और परिणाम देता है।

शुरू करने के लिए, इस ट्यूटोरियल में परीक्षण लिखने के लिए सभी फाइलों वाला एक फ़ोल्डर बनाएं। इस नए फ़ोल्डर में फ़ंक्शन लिखने के लिए 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 विधि का उपयोग करके इनपुट प्रॉम्प्ट मान को पूर्णांक में परिवर्तित किया गया है
  • आउटपुट प्राप्त करने के लिए f-स्ट्रिंग्स (स्वरूपण सिंटैक्स) का उपयोग करके इसके कुल को प्रिंट करने वाले मानों का योग करता है


यूनिट टेस्ट और टेस्ट केस क्या हैं?

पायथन एक अंतर्निहित मानक पुस्तकालय मॉड्यूल के साथ आता है जिसे यूनीटेस्ट कहा जाता है, जो आपके कोड के लिए परीक्षण बनाने और चलाने के लिए उपकरण प्रदान करता है। यूनिट टेस्टिंग का मुख्य उद्देश्य यह जांचना है कि क्या सभी कोड फंक्शन उम्मीद के मुताबिक काम करते हैं।


एक परीक्षण मामला परीक्षण नाम वर्ग में उपलब्ध कार्यात्मकताओं के साथ, एक परीक्षण के साथ काम करने का एक मानक तरीका है। साथ ही, व्यक्तिगत इकाई परीक्षण के लिए घटक कोड में एक परीक्षण मामला आवश्यक है। यह कोड चलाने के तुरंत बाद विफलताओं की जांच करने और रिपोर्ट करने के लिए विभिन्न मुखर विधियों का उपयोग करता है।


टेस्ट पास करना

यह खंड परीक्षणों की एक श्रृंखला लिखने के बारे में है।


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()


जैसा कि उपरोक्त कोड के ब्लॉक में दिखाया गया है, निम्न होता है:

  • आप जिस यूनिटेस्ट और फ़ंक्शन का परीक्षण करना चाहते हैं उसे आयात करें (यह main.py से आता है)
  • Add_sum () फ़ंक्शन के लिए परीक्षण युक्त एक वर्ग बनाकर यूनीटेस्ट काम करता है, जो उस क्लास के अंदर विरासत में मिलता है जो यूनिटटेस्ट देता है, जो कि यूनीटेस्ट है। टेस्टकेस
  • test_do_stuff () में स्वयं कीवर्ड के साथ एक फ़ंक्शन को परिभाषित करें जो कक्षा के उदाहरण का प्रतिनिधित्व करता है
  • test_do_stuff() परीक्षण विधि के भीतर, एक चर घोषित करें और अलग-अलग मानों के साथ दो तर्कों में पास करें
  • अंतिम पंक्ति सबसे अचूक मुखर विधि का उपयोग करती है, assertEqual, जो यह सत्यापित करती है कि परिणाम चर से आपके द्वारा पारित किए गए तर्क उस परिणाम से मेल खाते हैं जो आप प्राप्त करने की उम्मीद करते हैं
  • अंत में, संपूर्ण परीक्षण फ़ाइल को 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


उपरोक्त आउटपुट से, त्रुटि कोड को पढ़कर और तदनुसार कोड को सही करके निम्नलिखित को हल किया जा सकता है:

  • त्रुटि एक विशिष्ट लाइन नंबर पर हुई, जो आपको लाइन नंबर को जांचने और हल करने के लिए कह रही है।
  • अगला अभिकथन त्रुटि है, जो एक मान त्रुटि देता है जो दर्शाता है कि स्ट्रिंग 'हुलु' एक वैध शाब्दिक नहीं है, यह जानते हुए कि main.py फ़ाइल में, दो मान int के प्रकार के साथ हैं
  • इस चरण के साथ, आप जानते हैं कि कोड को सफल बनाने के लिए पास करने के लिए सही मानों के साथ कोड को परीक्षण चलाने के लिए क्या सही करना है।


कोड चलाना

जब आपके पास कई फाइलें और अलग-अलग मॉड्यूल बनाए गए हों, और आपको एक ही फाइल को डिफ़ॉल्ट रूप से आज़माने के बजाय उन सभी का एक साथ परीक्षण करने की आवश्यकता हो, तो आप सभी परीक्षणों को एक साथ चलाने के लिए इस कमांड का उपयोग कर सकते हैं।


 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


निष्कर्ष

यूनिट परीक्षण क्यूए और डेवलपर्स द्वारा लिखित और शिपिंग कोड में शामिल एक अभ्यास होना चाहिए, जब भी उपयोगकर्ताओं को ऐप का उपयोग करने से पहले कोई नई सुविधा जारी की जाती है। नियमित रूप से या समय-समय पर परीक्षण करना एक विचार नहीं होना चाहिए, बल्कि इस बात पर भरोसा करना चाहिए कि ऐप कितना कार्यात्मक और कुशल है।


इस लेख ने आपको एक सिंहावलोकन दिया कि विकास में परीक्षण क्यों आवश्यक हैं और उत्पादन में परिनियोजन से पहले कोड फ़ंक्शन की जांच करने और उपयोगकर्ताओं के लिए एक मानक विनिर्देश को पूरा करने के लिए यूनिट परीक्षणों का उपयोग कैसे करें।


और अधिक जानें