Pytest
पायटेस्ट एक पायथन परीक्षण ढांचा है जो पायपी परियोजना से उत्पन्न हुआ है। इसका उपयोग विभिन्न प्रकार के सॉफ्टवेयर परीक्षण लिखने के लिए किया जा सकता है, जिसमें इकाई परीक्षण, एकीकरण परीक्षण, अंत-से-अंत परीक्षण और कार्यात्मक परीक्षण शामिल हैं। इसकी विशेषताओं में मानकीकृत परीक्षण, जुड़ाव और पुनः लेखन शामिल हैं। पायटेस्ट फिक्स्चर परीक्षण मामलों में पैरामीटर नामों में पारित करके परीक्षणों के लिए संदर्भ प्रदान करते हैं; इसका पैरामीटराइजेशन इनपुट और आउटपुट के कई सेटों के परीक्षण के लिए डुप्लिकेट कोड को समाप्त करता है; और इसके पुनर्लिखित दावा कथन विफलताओं के कारणों के लिए विस्तृत आउटपुट प्रदान करते हैं। हिस्ट्री पाइटेस्ट को पायथन के अंतर्निर्मित मॉड्यूल यूनिटटेस्ट की कमियों को दूर करने के लिए तृतीय-पक्ष पैकेजों द्वारा एक प्रयास के हिस्से के रूप में विकसित किया गया था। यह पायपाई के हिस्से के रूप में उत्पन्न हुआ, जो मानक सीपीथॉन के लिए पायथन का एक वैकल्पिक कार्यान्वयन है। 2003 की शुरुआत में अपने निर्माण के बाद से, पायपाई ने परीक्षण पर भारी जोर दिया है। पायपाई के पास नए लिखित कोड के लिए इकाई परीक्षण, बग के लिए प्रतिगमन परीक्षण और सीपीथॉन के परीक्षण सूट का उपयोग करके एकीकरण परीक्षण थे। 2004 के मध्य में, यूटेस्ट नामक एक परीक्षण ढांचा उभरा और पी. पी. वाई. में योगदानकर्ताओं ने मौजूदा परीक्षण मामलों को यूटेस्ट में बदलना शुरू कर दिया। इस बीच, यूरोपाइथन 2004 में एसटीडी नामक परीक्षण के लिए एक पूरक मानक पुस्तकालय का आविष्कार किया गया था। इस पैकेज ने उन सिद्धांतों को निर्धारित किया, जैसे कि दावा पुनर्लेखन, जो बाद में पाइटेस्ट बन जाएगा। 2004 के अंत में, एस. टी. डी. परियोजना का नाम बदलकर पी. आई. कर दिया गया, std.utest का नाम बदलकर py.test कर दिया गया, और पी. आई. पुस्तकालय को पी. आई. पी. से अलग कर दिया गया। नवंबर 2010 में, पाइटेस्ट 2.0 को पी. आई. से अलग पैकेज के रूप में जारी किया गया था। अगस्त 2016 तक इसे अभी भी py.test कहा जाता था, लेकिन पाइटेस्ट 3.0 के जारी होने के बाद अनुशंसित कमांड लाइन प्रवेश बिंदु पाइटेस्ट बन गया। पायटेस्ट को इसकी लोकप्रियता के कारण विकासकर्ता सुरक्षा मंच स्नाइक द्वारा पायथन में प्रमुख पारिस्थितिकी तंत्र परियोजनाओं में से एक के रूप में वर्गीकृत किया गया है। यूनिटटेस्ट और नाक (एक अन्य परीक्षण पैकेज) से पाइटेस्ट पर स्विच करने वाली कुछ प्रसिद्ध परियोजनाओं में मोज़िला और ड्रॉपबॉक्स शामिल हैं। विशेषताएँ मानकीकृत परीक्षण यह परीक्षण कार्यों के माध्यम से मूल्य भेजने और सही आउटपुट की जांच करने के लिए सॉफ्टवेयर परीक्षण में एक सामान्य पैटर्न है। कई मामलों में, कार्यात्मकताओं का पूरी तरह से परीक्षण करने के लिए, किसी को इनपुट/आउटपुट के कई सेटों का परीक्षण करने की आवश्यकता होती है, और ऐसे मामलों को अलग से लिखने से डुप्लिकेट कोड होगा क्योंकि अधिकांश क्रियाएं समान रहती हैं, केवल इनपुट/आउटपुट मूल्यों में भिन्न होती हैं। पाइटेस्ट की पैरामीटराइज्ड परीक्षण सुविधा विभिन्न पुनरावृत्तियों को एक परीक्षण मामले में जोड़कर, फिर इन पुनरावृत्तियों को चलाकर और प्रत्येक परीक्षण के परिणाम को अलग से प्रदर्शित करके इस तरह के डुप्लिकेट कोड को समाप्त कर देती है। पाइटेस्ट में मानकीकृत परीक्षण डेकोरेटर द्वारा चिह्नित किए जाते हैं, जहां पहला पैरामीटर, अल्पविराम से अलग किए गए नामों की एक स्ट्रिंग है, और इसमें जाने के लिए मूल्यों की एक सूची है। जब कई नाम होते हैं, तो टुपल्स की एक सूची होगी जहां प्रत्येक टुपल में मान अनुक्रमणिका में नामों से मेल खाते हैं। इन नामों को फिर परीक्षक द्वारा मापदंडों के रूप में चिह्नित परीक्षण कार्य में पारित किया जाता है। जब पाइटेस्ट इस तरह के सजाए गए परीक्षण चलाता है, तो और की प्रत्येक जोड़ी अपने स्वयं के परीक्षण आउटपुट और अद्वितीय पहचानकर्ता के साथ एक अलग दौड़ का गठन करेगी। पहचानकर्ता का उपयोग तब अलग-अलग डेटा जोड़े चलाने के लिए किया जा सकता है। सॉफ्टवेयर परीक्षण लिखते समय, दावा कथन परीक्षण विफलता को संप्रेषित करने का एक प्राथमिक साधन है, जहां अपेक्षित मूल्यों की तुलना वास्तविक मूल्यों से की जाती है। जबकि पायथन का अंतर्निहित दावा करने वाला मुख्य शब्द केवल विफलता के मामलों में बिना किसी विवरण के कथन त्रुटि को बढ़ाएगा, पायटेस्ट पायथन के दावा करने वाले मुख्य शब्द को फिर से लिखता है और विफलताओं के कारणों के लिए विस्तृत आउटपुट प्रदान करता है, जैसे कि दावा करने वाले कथन में किस अभिव्यक्ति का मूल्यांकन किया जाता है। यूनिटटेस्ट (परीक्षण के लिए पायथन का अंतर्निर्मित मॉड्यूल) के मुखर बयानों के साथ एक तुलना की जा सकती हैः एक अधिक वर्बोस वाक्यविन्यास का पालन करता है क्योंकि यह जावा प्रोग्रामिंग भाषा के जेयूनिट से प्रेरित है, जैसा कि अधिकांश इकाई परीक्षण पुस्तकालय हैं; पायटेस्ट पायथन के अंतर्निर्मित मुखर कॉल को रोकते समय उसी को प्राप्त करता है, जिससे दृष्टिकोण अधिक संक्षिप्त हो जाता है। पाइटेस्ट के परीक्षण यह पुष्टि करते हैं कि कंप्यूटर कोड एएए के रूप में ज्ञात एक व्यवस्था, कार्य और दावा अनुक्रम में संरचित परीक्षणों का उपयोग करके उम्मीद के अनुसार प्रदर्शन करता है। इसके फिक्स्चर परीक्षणों के लिए संदर्भ प्रदान करते हैं। इनका उपयोग किसी प्रणाली को ज्ञात अवस्था में रखने और डेटा को परीक्षण कार्यों में पारित करने के लिए किया जा सकता है। फिक्सर व्यावहारिक रूप से एक परीक्षण की शरीर रचना में व्यवस्था चरण का गठन करते हैं (एएए, व्यवस्था, कार्य, दावा के लिए छोटा)। पाइटेस्ट फिक्स्चर परीक्षण मामलों से पहले सेटअप के रूप में या परीक्षण मामलों के बाद सफाई के लिए चल सकते हैं, लेकिन यूनिटटेस्ट और नाक (एक अन्य तृतीय-पक्ष पायथन परीक्षण ढांचा) के सेटअप और टियरडाउन से अलग हैं। पाइटेस्ट फिक्स्चर के रूप में घोषित कार्यों को डेकोरेटर द्वारा चिह्नित किया जाता है, जिनके नाम तब मापदंडों के रूप में परीक्षण कार्यों में पारित किए जा सकते हैं। जब पाइटेस्ट को परीक्षण कार्यों के मापदंडों में फिक्स्चर के नाम मिलते हैं, तो यह पहले ऐसे फिक्स्चर के लिए उसी मॉड्यूल में खोज करता है, और यदि नहीं मिलता है, तो यह conftest.py फ़ाइल में ऐसे फिक्स्चर की खोज करता है। उदाहरण के लिएः इम्पोर्ट पाइटेस्ट @pytest.fixture डेफ डेटासेट (): "" परीक्षण कार्यों के लिए कुछ डेटा वापस करें "" "रिटर्न {'डेटा1': 1, 'डेटा2': 2} डेफ टेस्ट _ डेटासेट (डेटासेट):" "स्थिरता मूल्य का परीक्षण और पुष्टि करें" "डेटासेट का दावा करें = = {'डेटा1': 1, 'डेटा2': 2} उपरोक्त उदाहरण में, पाइटेस्ट स्थिरता एक शब्दकोश लौटाती है, जिसे फिर दावे के लिए परीक्षण कार्य में पारित किया जाता है। परीक्षण मामलों के रूप में एक ही फ़ाइल के भीतर स्थिरता का पता लगाने के अलावा, पायटेस्ट जुड़नार को परीक्षण निर्देशिका में conftest.py फ़ाइल में भी रखा जा सकता है। कई conftest.py फाइलें हो सकती हैं, जिनमें से प्रत्येक को परीक्षण निर्देशिका के भीतर रखा जाता है ताकि परीक्षणों के प्रत्येक उपसमुच्चय के लिए जुड़ाव का पता लगाया जा सके। फिक्स्चर स्कोप पाइटेस्ट में, फिक्स्चर स्कोप उपयोगकर्ता को यह परिभाषित करने देते हैं कि फिक्स्चर को कब कॉल किया जाना चाहिए। चार स्थिरता क्षेत्र हैंः कार्य क्षेत्र, वर्ग क्षेत्र, मॉड्यूल क्षेत्र और सत्र क्षेत्र। फंक्शन-स्कोप्ड फिक्स्चर सभी पाइटेस्ट फिक्स्चर के लिए डिफ़ॉल्ट होते हैं, जिन्हें हर बार एक पैरामीटर के रूप में फिक्स्चर वाले फंक्शन के चलने पर कहा जाता है। एक व्यापक स्थिरता दायरे को निर्दिष्ट करने का लक्ष्य बार-बार स्थिरता कॉल को समाप्त करना है, जो परीक्षण निष्पादन को धीमा कर सकता है। क्लास-स्कोप्ड फिक्स्चर को प्रति परीक्षण वर्ग में एक बार बुलाया जाता है, चाहे उन्हें कितनी बार बुलाया जाए, और अन्य सभी स्कोप के लिए भी यही तर्क लागू होता है। जब स्थिरता का दायरा बदलता है, तो किसी को केवल स्थिरता सज्जाकारों के लिए गुंजाइश पैरामीटर जोड़ने की आवश्यकता होती है, उदाहरण के लिए। परीक्षण फ़िल्टरिंग पाइटेस्ट की एक अन्य विशेषता परीक्षणों के माध्यम से फ़िल्टर करने की इसकी क्षमता है, जहां केवल वांछित परीक्षणों को चलाने के लिए चुना जाता है, या डेवलपर द्वारा वांछित तरीके से व्यवहार किया जाता है। "के" विकल्प के साथ (जैसे। ), पाइटेस्ट केवल ऐसे परीक्षण चलाएगा जिनके नाम शामिल हैं। इसके विपरीत सच है, जहाँ कोई दौड़ सकता है, और पाइटेस्ट उन सभी परीक्षणों को चलाएगा जिनके नाम शामिल नहीं हैं। पाइटेस्ट के मार्कर, परीक्षण व्यवहार को बदलने के अलावा, परीक्षणों को फ़िल्टर भी कर सकते हैं। पाइटेस्ट के मार्कर पायथन डेकोरेटर हैं जो परीक्षण कार्यों के शीर्ष पर रखे गए वाक्यविन्यास से शुरू होते हैं। अलग-अलग मनमाने नाम वाले मार्करों के साथ, कमांड लाइन पर चलने से केवल ऐसे मार्करों से सजाए गए परीक्षणों को चलाया जाएगा। सभी उपलब्ध मार्करों को उनके विवरण के साथ सूचीबद्ध किया जा सकता है; कस्टम मार्करों को उपयोगकर्ताओं द्वारा परिभाषित किया जा सकता है और pytest.ini में पंजीकृत किया जा सकता है, इस मामले में उन कस्टम मार्करों को अंतर्निहित मार्करों के साथ भी सूचीबद्ध किया जाएगा। यह भी देखें जेयूनिट, जावा डॉक्टेस्ट पर आधारित प्रसिद्ध सॉफ्टवेयर परीक्षण ढांचा, डॉकस्ट्रिंग के लिए पायथन में प्रसिद्ध परीक्षण ढांचा संदर्भ इकाई परीक्षण ढांचे की सूची बाहरी लिंक https://pypi.python.org/pypi/pytest https://docs.pytest.org पायथन (प्रोग्रामिंग भाषा) विकास उपकरण मुफ्त सॉफ्टवेयर परीक्षण उपकरण इकाई परीक्षण ढांचा