पाययूनिट ट्यूटोरियल: Python यूनिट परीक्षण फ्रेमवर्क (उदाहरण सहित)
⚡ स्मार्ट सारांश
Python यूनिट टेस्टिंग आपके कोड के छोटे-छोटे हिस्सों की अलग-अलग जाँच करके शुरुआती चरण में ही बग्स का पता लगाती है। यहाँ आप यूनिट टेस्टिंग तकनीक, PyUnit (unittest) फ्रेमवर्क, इसकी प्रमुख क्लास, टेस्ट केस डिज़ाइन करने का तरीका और एक कार्यशील उदाहरण सीखेंगे।
यूनिट टेस्टिंग क्या है?
इकाई का परीक्षण in Python यह एप्लिकेशन के विकास चरण में बगों की पहचान करने के लिए किया जाता है, जब बग कम बार-बार आते हैं और उन्हें ठीक करना कम महंगा होता है।
यूनिट परीक्षण एक स्क्रिप्टेड कोड स्तर परीक्षण है जिसे Python कार्यक्षमता की एक छोटी "इकाई" को सत्यापित करने के लिए। यूनिट टेस्ट एक ऑब्जेक्ट ओरिएंटेड फ्रेमवर्क है जो टेस्ट फिक्स्चर के आसपास आधारित है।
Python यूनिट परीक्षण तकनीकें
Python यूनिट परीक्षण में मुख्य रूप से किसी भी आश्रित कोड तक पहुँच के बिना किसी विशेष मॉड्यूल का परीक्षण करना शामिल है। डेवलपर्स कोड को "यूनिट" में अलग करने और अलग-अलग टुकड़ों पर यूनिट स्तर का परीक्षण चलाने के लिए स्टब्स और मॉक जैसी तकनीकों का उपयोग कर सकते हैं।
- परीक्षण-संचालित विकास TDD: यूनिट परीक्षण के साथ-साथ किया जाना चाहिए Python, और इसके लिए डेवलपर्स टेस्ट-ड्रिवेन डेवलपमेंट विधि का उपयोग करते हैं। TDD विधि में, आप पहले डिज़ाइन करते हैं Python यूनिट परीक्षण और उसके बाद ही आप उस कोड को लिखना जारी रखते हैं जो इस सुविधा को क्रियान्वित करेगा।
-
स्टब्स और मॉक: ये दो मुख्य तकनीकें हैं जो परीक्षण की जा रही नकली विधियों का अनुकरण करती हैं। ठूंठ यूनिट परीक्षण को सही ढंग से चलाने के लिए आवश्यक कुछ निर्भरता को भरने के लिए उपयोग किया जाता है। दिखावटी दूसरी ओर एक नकली ऑब्जेक्ट है जो परीक्षण चलाता है जहां हमने दावा किया है।
दोनों विधियों का उद्देश्य एक ही है, किसी वर्ग या फ़ंक्शन की सभी निर्भरताओं के परीक्षण को समाप्त करना।
Python यूनिट परीक्षण फ्रेमवर्क
यूनिट परीक्षण प्रक्रिया को आसान बनाने और अपने प्रोजेक्ट की गुणवत्ता में सुधार करने के लिए, यह अनुशंसा की जाती है Python यूनिट परीक्षण फ्रेमवर्क। यूनिट परीक्षण फ्रेमवर्क में शामिल हैं
-
पाययूनिट: PyUnit कोड के स्वचालित परीक्षण के लिए फिक्स्चर, टेस्ट केस, टेस्ट सूट और टेस्ट रनर का समर्थन करता है। PyUnit में, आप समान फिक्स्चर वाले सूट में टेस्ट केस को व्यवस्थित कर सकते हैं
-
नाक: नोज़ के बिल्ट इन प्लग-इन आपको आउटपुट कैप्चर, कोड कवरेज, डॉकटेस्ट आदि में मदद करते हैं। नोज़ सिंटैक्स बहुत सरल है और टेस्ट लिखने में आने वाली बाधाओं को कम करता है। यह विस्तारित करता है Python परीक्षण को आसान बनाने के लिए unittest का उपयोग करें।
- डॉकटेस्ट : डॉकटेस्ट परीक्षण स्क्रिप्ट फ़ाइल के निचले भाग में छोटे फ़ंक्शन के साथ डॉकस्ट्रिंग में जाती है। डॉकटेस्ट आपको दस्तावेज़ीकरण में शामिल उदाहरणों को चलाकर और यह सत्यापित करके अपने कोड का परीक्षण करने की अनुमति देता है कि उन्होंने अपेक्षित परिणाम लौटाए हैं। डॉकटेस्ट का उपयोग-मामला कम विस्तृत है और विशेष मामलों को नहीं पकड़ता है। वे मॉड्यूल और उसके घटकों के मुख्य उपयोग मामले के अभिव्यंजक दस्तावेज़ीकरण के रूप में उपयोगी हैं।
PyUnit के साथ यूनिट परीक्षण
प्यूनिट एक है Python का बंदरगाह JUnitPyunit के एक भाग के रूप में, यूनिटेस्ट मॉड्यूल में पाँच प्रमुख वर्ग हैं।
- टेस्टकेस क्लास: TestCase वर्ग परीक्षण रूटीन को वहन करता है और प्रत्येक रूटीन को बनाने और उसके बाद सफाई करने के लिए हुक प्रदान करता है
- टेस्टसूट क्लास: यह एक संग्रह कंटेनर के रूप में कार्य करता है, और इसमें कई टेस्टकेस ऑब्जेक्ट और कई टेस्टसूट ऑब्जेक्ट हो सकते हैं
- टेस्ट लोडर वर्ग: यह क्लास स्थानीय रूप से या किसी बाहरी फ़ाइल से परिभाषित टेस्ट केस और सूट लोड करता है। यह एक टेस्टसूट ऑब्जेक्ट उत्सर्जित करता है जिसमें वे सूट और केस होते हैं
- TextTestRunner वर्ग: परीक्षण चलाने के लिए यह परीक्षणों को निष्पादित करने के लिए एक मानक मंच प्रदान करता है
- टेस्टरिजल्ट्स क्लास: यह परीक्षण परिणामों के लिए एक मानक कंटेनर प्रदान करता है
के लिए एक परीक्षण मामला डिजाइन करना Python PyUnit का उपयोग करके परीक्षण
यूनिट टेस्ट एक बेस क्लास, टेस्ट केस प्रदान करता है, जिसका उपयोग नए टेस्ट केस बनाने के लिए किया जा सकता है। टेस्ट केस को डिज़ाइन करने के लिए, तीन तरह की विधियों का इस्तेमाल किया जाता है:
यूनिटटेस्ट।टेस्टकेस
setUp() teardown() skipTest(aMesg:string) fail(aMesg:string) id():string shortDescription():string
पहले सेट में प्री और पोस्ट टेस्ट हुक हैं। सेटअप() विधि प्रत्येक टेस्ट रूटीन से पहले शुरू होती है, टियरडाउन() रूटीन के बाद।
विधि का दूसरा सेट परीक्षण निष्पादन को नियंत्रित करता है। दोनों विधियाँ इनपुट के रूप में एक संदेश स्ट्रिंग लेती हैं, और दोनों चल रहे परीक्षण को रद्द कर देती हैं। लेकिन skiptest() विधि वर्तमान परीक्षण को निरस्त कर देती है जबकि fail() विधि इसे पूरी तरह विफल कर देती है।
अंतिम या तीसरी विधि परीक्षण निर्धारित करने में मदद करती है। विधि id() टेस्टकेस ऑब्जेक्ट और टेस्ट रूटीन के नाम से युक्त एक स्ट्रिंग लौटाती है। और विधि शॉर्टDescription() प्रत्येक परीक्षण रूटीन के आरंभ में docstr टिप्पणी लौटाता है।
Python यूनिट टेस्ट उदाहरण
नीचे दिया गया उदाहरण unittest मॉड्यूल के साथ एक साधारण add() फ़ंक्शन का परीक्षण करता है। test_ उपसर्ग वाले प्रत्येक मेथड स्वचालित रूप से चलते हैं, और assertEqual अपेक्षित मान के विरुद्ध परिणाम की जाँच करता है।
import unittest def add(a, b): return a + b class TestAdd(unittest.TestCase): def test_add_positive(self): self.assertEqual(add(2, 3), 5) def test_add_negative(self): self.assertEqual(add(-1, -1), -2) if __name__ == "__main__": unittest.main()
कोड को सेव करें और इसे python filename.py कमांड से चलाएं। unittest रनर बताएगा कि कितने टेस्ट पास हुए या फेल हुए।
उपयोग के लाभ Python इकाई परीक्षण
- यह आपको विकास चक्र में प्रारंभिक अवस्था में ही बग का पता लगाने में मदद करता है
- यह आपको बेहतर प्रोग्राम लिखने में मदद करता है
- यह अन्य परीक्षण विधियों और उपकरणों के साथ आसानी से समन्वयित हो जाता है
- इसमें बहुत कम बग होंगे
- भविष्य में इसे बहुत कम परिणामों के साथ संशोधित करना आसान है




