paint-brush
बढ़ी हुई कोड गुणवत्ता और तेज़ प्रतिक्रिया के लिए अपने पाइटेस्ट प्रदर्शन को गति देंद्वारा@launchable
79,541 रीडिंग
79,541 रीडिंग

बढ़ी हुई कोड गुणवत्ता और तेज़ प्रतिक्रिया के लिए अपने पाइटेस्ट प्रदर्शन को गति दें

द्वारा Launchable7m2023/04/26
Read on Terminal Reader

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

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

पाइटेस्ट के साथ लॉन्चेबल के प्रेडिक्टिव टेस्ट चयन को एकीकृत करना

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


लेकिन क्या होगा अगर हम पाइस्टेस्ट को और भी बेहतर बना सकें?


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


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

पाइटेस्ट की मूल बातें समझना

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

पाइटेस्ट टेस्ट और अभिकथन

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


 def add(a, b): return a + b def test_add(): assert add(2, 3) == 5 assert add(-1, 5) == 4 assert add(0, 0) == 0


पाइटेस्ट फिक्स्चर

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


 import pytest @pytest.fixture def sample_data(): return {"name": "John Doe", "age": 30} def test_sample_data(sample_data): assert sample_data["name"] == "John Doe" assert sample_data["age"] == 30


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

पायटेस्ट प्लगइन्स

पाइटेस्ट का प्लगइन सिस्टम आपको इसकी कार्यक्षमता बढ़ाने या इसे अन्य उपकरणों के साथ एकीकृत करने की अनुमति देता है, जिससे यह और भी बहुमुखी हो जाता है। आप या तो मौजूदा प्लगइन्स का उपयोग कर सकते हैं या अपना खुद का बना सकते हैं। किसी मौजूदा प्लगइन को स्थापित करने के लिए, पिप पैकेज मैनेजर का उपयोग करें। उदाहरण के लिए, pytest-cov प्लगइन को स्थापित करने के लिए अपनी कमांड लाइन में निम्न को चलाएँ।


pip install pytest-cov


एक कस्टम प्लगइन बनाने के लिए, एक नया पायथन मॉड्यूल परिभाषित करें (उदाहरण में my_plugin_module नाम दिया गया है)। वहां से, आप मॉड्यूल को अपनी setup.py फ़ाइल में प्रवेश बिंदु के रूप में पंजीकृत करेंगे।


 # setup.py from setuptools import setup setup( ... entry_points={"pytest11": ["my_plugin = my_plugin_module"]}, ... )


पायटेस्ट के लाभ और सीमाएं

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

पाइटेस्ट के लाभ

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


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


  3. एक्स्टेंसिबिलिटी: प्लगइन्स, कार्यक्षमता बढ़ाने की क्षमता: पाइटेस्ट का प्लगइन सिस्टम डेवलपर्स को इसकी कार्यक्षमता बढ़ाने या अन्य उपकरणों के साथ एकीकृत करने में सक्षम बनाता है, जिससे इसकी बहुमुखी प्रतिभा बढ़ती है।


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


  5. क्रॉस-प्लेटफ़ॉर्म संगतता: विंडोज, लिनक्स और मैकओएस पर चलता है: पाइटेस्ट क्रॉस-प्लेटफ़ॉर्म संगत है, जिसका अर्थ है कि यह विंडोज, लिनक्स और मैकओएस जैसे विभिन्न ऑपरेटिंग सिस्टम पर चल सकता है, जिससे एक सहज परीक्षण अनुभव सुनिश्चित होता है।


  6. सामुदायिक समर्थन: उपयोगकर्ताओं के एक बड़े, सहायक समुदाय तक पहुंच: पाइटेस्ट के पास एक बड़ा और सहायक समुदाय है, जो समस्या निवारण, ज्ञान साझा करने और नवीनतम विकास के साथ अप-टू-डेट रहने के मामले में अमूल्य है।

पायटेस्ट की सीमाएं

इसके कई लाभों के बावजूद, पाइस्टेस्ट की कुछ सीमाएँ भी हैं जिन पर डेवलपर्स को विचार करना चाहिए:


  1. गैर-पाइथन भाषाओं के लिए सीमित समर्थन: पाइटेस्ट को पायथन को ध्यान में रखकर बनाया गया है, इसलिए इसमें अन्य भाषाओं के लिए व्यापक समर्थन नहीं है। यह एक समस्या हो सकती है यदि आपको पायथन के अलावा किसी अन्य भाषा में लिखे गए कोड का परीक्षण करने की आवश्यकता हो।


  2. जटिल परीक्षणों को डिबग करना मुश्किल: जटिल परीक्षणों से निपटने के दौरान पाइस्टेस्ट को डीबग करना मुश्किल हो सकता है। यह विशेष रूप से चुनौतीपूर्ण हो सकता है यदि परीक्षण में कई घटक शामिल होते हैं या परीक्षण किए जा रहे कोड की गहरी समझ की आवश्यकता होती है।


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


अच्छी खबर यह है कि अगर आप लॉन्चेबल के प्रिडिक्टिव टेस्ट सेलेक्शन का उपयोग करते हैं तो आपको घंटों जटिल इंटीग्रेशन टेस्ट सूट चलाने की जरूरत नहीं है।

लॉन्च करने योग्य और पाइस्टेस्ट एक साथ कैसे काम करते हैं

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


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


Pytest में लॉन्च करने योग्य जोड़ने से डेवलपर्स और DevOps टीमों को इसकी अनुमति मिलती है:


  1. कम परीक्षण निष्पादन समय : केवल सबसे प्रासंगिक परीक्षण चलाकर, आप परीक्षण निष्पादन पर लगने वाले समय को महत्वपूर्ण रूप से कम कर सकते हैं, त्वरित पुनरावृत्तियों और तेज़ परिनियोजन को सक्षम कर सकते हैं।


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


  3. बढ़ी हुई परीक्षण सूट विश्वसनीयता: दोषों को पकड़ने की सबसे अधिक संभावना वाले परीक्षणों को प्राथमिकता देकर, आप अपने कोडबेस की समग्र गुणवत्ता और विश्वसनीयता में सुधार करते हुए, विकास चक्र की शुरुआत में समस्याओं का पता लगा सकते हैं और उन्हें ठीक कर सकते हैं।

पाइटेस्ट और लॉन्चेबल के लिए हैंड्स-ऑन ट्यूटोरियल

लॉन्च करने योग्य पाइस्टेस्ट प्लगइन के साथ आरंभ करने के लिए, इसमें चार सरल चरण होते हैं।


✅ लॉन्च करने योग्य पाइटेस्ट प्लगइन स्थापित करें

लॉन्च करने योग्य पाइस्टेस्ट प्लगइन स्थापित करें: pip3 install pytest-launchable


✅ अपनी लॉन्च करने योग्य API कुंजी सेट करें

https://app.launchableinc.com/signup/ पर एक लॉन्च करने योग्य खाते के लिए साइन अप करें (यदि आपने पहले से नहीं किया है) और अपनी एपीआई कुंजी बनाएं। अपनी कुंजी को अपनी सीआई स्क्रिप्ट में पर्यावरण चर के रूप में निर्यात करें: export LAUNCHABLE_TOKEN=<your_launchable_api_key>

इस कुंजी को कहीं सुरक्षित रखें - सभी को देखने के लिए इसे अपने स्रोत कोड में छोड़ने से बचें।


✅ लॉन्च करने योग्य परीक्षण डेटा रिकॉर्ड करें और सबमिट करें:

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

आप पाइप के माध्यम से चलाकर लॉन्च करने योग्य कॉन्फ़िगरेशन उत्पन्न कर सकते हैं: launchable-config --create , या आप इस उदाहरण को .launchable.d/config.yml नामक एक नई फ़ाइल में कॉपी कर सकते हैं:


 # Launchable test session configuration file # See https://docs.launchableinc.com/resources/cli-reference for detailed usage of these options # schema-version: 1.0 build-name: commit_hash record-build: # Put your git repository location here source: . max_days: 30 record-session: subset: # mode can be subset, subset-and-rest, or record-only mode: record-only # if mode is subset or subset-and-rest, you must specify one of target/confidence/time # examples: # target: 30% # Create a variable time-based subset of the given percentage. (0%-100%) # confidence: 30% # Create a confidence-based subset of the given percentage. (0%-100%) # time: 30m # Create a fixed time-based subset. Select the best set of tests that run within the given time bound. (eg 10m for 10 minutes, 2h30m for 2.5 hours, 1w3d for 7+3=10 days. ) confidence: 99 record-tests: # The test results are placed here in JUnit XML format result_dir: launchable-test-result


✅ प्रिडिक्टिव टेस्ट चयन सक्षम करें:

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


आपको केवल अपनी config.yml फ़ाइल को अपडेट करना है। subset mode subset में बदलें, एक अनुकूलन लक्ष्य ( target , time , या confidence में से एक) सेट करें, और फ़ाइल को सहेजें। जब आप pytest --launchable चलाते हैं तो यह सबसेटिंग को सक्षम करता है।


ईसी पीसी लेमन स्क्यूजी!


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


व्यापक प्रलेखन के लिए, पाइस्टेस्ट (एकीकरण) | देखें लॉन्च करने योग्य डॉक्स


पाइटेस्ट और प्रिडिक्टिव टेस्ट चयन पर अंतिम टिप्पणी

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


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