TestNG
टेस्टएनजी सेड्रिक ब्यूस्ट द्वारा बनाई गई और जेयूनिट और एनयूनिट से प्रेरित जावा प्रोग्रामिंग भाषा के लिए एक परीक्षण ढांचा है। टेस्टएनजी का डिजाइन लक्ष्य परीक्षण श्रेणियों की एक विस्तृत श्रृंखला को कवर करना हैः इकाई, कार्यात्मक, अंत से अंत, एकीकरण, आदि, अधिक शक्तिशाली और उपयोग में आसान कार्यक्षमताओं के साथ। टेस्टएनजी की मुख्य विशेषताओं में शामिल हैंः एनोटेशन समर्थन। डेटा-संचालित/मानकीकृत परीक्षण के लिए समर्थन (@DataProvider और/या XML विन्यास के साथ)। एक ही परीक्षण वर्ग (@Factory के साथ) लचीले निष्पादन मॉडल के कई उदाहरणों के लिए समर्थन। टेस्टएनजी को या तो चींटी द्वारा build.xml (परिभाषित परीक्षण सूट के साथ या उसके बिना), या दृश्य परिणामों के साथ एक IDE प्लगइन द्वारा चलाया जा सकता है। एक टेस्टसूइट वर्ग नहीं है, जबकि परीक्षण सुइट, समूह और चलाने के लिए चुने गए परीक्षणों को एक्स. एम. एल. फ़ाइलों द्वारा परिभाषित और कॉन्फ़िगर किया जाता है। समवर्ती परीक्षणः विभिन्न उपलब्ध नीतियों के साथ मनमाने ढंग से बड़े धागे के पूल में परीक्षण चलाएँ (सभी तरीके अपने धागे में, प्रति परीक्षण वर्ग में एक धागा, आदि)। ), और जाँच करें कि क्या कोड मल्टीथ्रेड सुरक्षित है। अधिक लचीलेपन के लिए BeanShell एम्बेड करता है। रनटाइम और लॉगिंग के लिए डिफ़ॉल्ट जे. डी. के. कार्य (कोई निर्भरता नहीं)। अनुप्रयोग सर्वर परीक्षण के लिए निर्भर विधियाँ। वितरित परीक्षणः स्लेव मशीनों पर परीक्षणों के वितरण की अनुमति देता है। डेटा प्रदाता टेस्टएनजी में एक डेटा प्रदाता एक परीक्षण वर्ग में एक विधि है, जो आश्रित परीक्षण विधियों को विभिन्न वास्तविक मूल्यों की एक श्रृंखला प्रदान करता है। उदाहरण-//यह विधि किसी भी परीक्षण विधि को डेटा प्रदान करेगी जो घोषणा करती है कि उसके डेटा प्रदाता का नाम "प्रदाता 1" है। @DataProvider (नाम = "प्रदाता1") सार्वजनिक ऑब्जेक्ट [] [] क्रिएटडेटा1 () {रिटर्न न्यू ऑब्जेक्ट [] [] {{"सेड्रिक", नया पूर्णांक (36)}, {"ऐनी", नया पूर्णांक (37)};}// यह परीक्षण विधि घोषित करती है कि इसके डेटा की आपूर्ति "प्रदाता1" नामक डेटा प्रदाता द्वारा की जानी चाहिए। @Test (डेटा प्रदाता = "प्रदाता 1") सार्वजनिक शून्य सत्यापित डेटा 1 (स्ट्रिंग n1, पूर्णांक n2) {System.out.println (n1 + "+ n2);}// एक डेटा प्रदाता जो पैरामीटर सरणियों का एक पुनरावृत्ति देता है। @DataProvider (नाम = "प्रदाता2") सार्वजनिक Iterator <ऑब्जेक्ट []> क्रिएटडेटा () {रिटर्न न्यू माईइटरैटर (.);}// प्रकार java.lang.reflect.Method के तर्क के साथ एक डेटा प्रदाता। //यह विशेष रूप से तब उपयोगी होता है जब कई परीक्षण विधियाँ एक ही// प्रदाता का उपयोग करती हैं और आप चाहते हैं कि यह किस परीक्षण विधि पर काम कर रहा है, इसके आधार पर अलग-अलग मान वापस करे। @DataProvider (नाम = "प्रदाता 3") सार्वजनिक ऑब्जेक्ट [] क्रिएटडेटा (विधि m) {System.out.println (m.getName ()); रिटर्न न्यू ऑब्जेक्ट [] [] {न्यू ऑब्जेक्ट [] {"सेड्रिक"}};} डेटा प्रदाता का लौटाया गया प्रकार निम्नलिखित दो प्रकारों में से एक हो सकता हैः वस्तुओं की सरणी (ऑब्जेक्ट [] []) की एक सरणी जहां पहले आयाम का आकार परीक्षण विधि को लागू करने की संख्या है और दूसरे आयाम के आकार में वस्तुओं की एक सरणी होती है जो परीक्षण विधि के पैरामीटर प्रकारों के साथ संगत होनी चाहिए। एक इटरेटर <ऑब्जेक्ट []>। ऑब्जेक्ट [] [] के साथ एकमात्र अंतर यह है कि एक इटरेटर आपको आलस्य से अपना परीक्षण डेटा बनाने देता है। टेस्टएनजी इटरेटर का आह्वान करेगा और फिर इस इटरेटर द्वारा एक-एक करके दिए गए मापदंडों के साथ परीक्षण विधि का उपयोग करेगा। यह विशेष रूप से उपयोगी है यदि आपके पास विधि को पारित करने के लिए बहुत सारे पैरामीटर सेट हैं और आप उन सभी को पहले से नहीं बनाना चाहते हैं। टूल समर्थन टेस्टएनजी को तीन प्रमुख जावा आई. डी. ई.-एक्लिप्स, इंटेलीजे आई. डी. ई. ए. और नेटबीन्स में से प्रत्येक द्वारा आउट-ऑफ-द-बॉक्स या प्लग-इन के माध्यम से समर्थित किया जाता है। यह अपाचे चींटी के लिए एक कस्टम टास्क के साथ भी आता है और मेवेन बिल्ड सिस्टम द्वारा समर्थित है। हडसन निरंतर एकीकरण सर्वर में टेस्टएनजी के लिए अंतर्निहित समर्थन है और समय के साथ परीक्षण परिणामों को ट्रैक और चार्ट करने में सक्षम है। अधिकांश जावा कोड कवरेज उपकरण, जैसे कोबरटुरा, टेस्टएनजी के साथ निर्बाध रूप से काम करते हैं। नोटः एक्लिप्स के लिए टेस्टएनजी समर्थन केवल एक्लिप्स मार्केटप्लेस में एक्लिप्स संस्करणों के लिए 2018-09 (4.9) तक अंतर्निहित है। ग्रहण के बाद के संस्करणों के लिए, टेस्टएनजी साइट में निर्देशों के अनुसार टेस्टएनजी को मैन्युअल रूप से स्थापित किया जाना चाहिए। टेस्टएनजी रिपोर्ट करना एच. टी. एम. एल. और एक्स. एम. एल. प्रारूपों में परीक्षण रिपोर्ट उत्पन्न करता है। जेयूनिट का उपयोग करते समय प्राप्त रिपोर्टों के समान रिपोर्ट उत्पन्न करने के लिए एक्स. एम. एल. आउटपुट को एंट जेयूनिटरिपोर्ट कार्य द्वारा परिवर्तित किया जा सकता है। संस्करण 4.6 के बाद से, टेस्टएनजी एक रिपोर्टर एपीआई भी प्रदान करता है जो तीसरे पक्ष के रिपोर्ट जनरेटर, जैसे रिपोर्टएनजी, पीडीएफएनग्रेपोर्ट और टेस्टएनजी-एक्सएसएलटी, का उपयोग करने की अनुमति देता है। जेयूनिट टेस्टएनजी के साथ तुलना में एक अन्य परीक्षण उपकरण जेयूनिट के साथ लंबे समय से प्रतिद्वंद्विता है। प्रत्येक ढांचे में अंतर और संबंधित लाभ हैं। स्टैक ओवरफ्लो चर्चा इस विवाद को दर्शाती है। व्याख्याएँ जे. यू. एन. आई. टी. 5 में, @BeforeAll और @AfterAll विधियों को अधिकांश परिस्थितियों में स्थिर घोषित किया जाना चाहिए। टेस्टएनजी में यह बाधा नहीं है। टेस्टएनजी में टेस्ट सूट और समूहों के लिए चार अतिरिक्त सेटअप/टियरडाउन एनोटेशन जोड़े शामिल हैंः @BeforeSuite, @AfterSuite, @BeforeTest, @AfterTest, @BeforeGroup और @AfterGroup, @BeforeMethod और @AfterMethod। टेस्टएनजी सेलेनियम का उपयोग करके एक अनुप्रयोग के स्वचालित परीक्षण के लिए भी सहायता प्रदान करता है। मानकीकृत परीक्षण मानकीकृत परीक्षण दोनों उपकरणों में लागू किया जाता है, लेकिन काफी अलग तरीकों से। टेस्टएनजी के पास एक परीक्षण विधि के लिए अलग-अलग पैरामीटर मान प्रदान करने के दो तरीके हैंः testng.xml सेट करके, और @DataProvider विधि को परिभाषित करके। जेयूनिट 5 में, @ParameterizedTest एनोटेशन मानकीकृत परीक्षण की अनुमति देता है। इस एनोटेशन को एक अन्य एनोटेशन के साथ जोड़ा जाता है जो @ValueSource या @EnumSource जैसे पैरामीटर किए गए तर्कों के स्रोत की घोषणा करता है। @ArgumentsSource का उपयोग उपयोगकर्ता को अधिक गतिशील तर्क प्रदाता को लागू करने की अनुमति देता है। JUnit 4 में, @RunWith और @Parameters का उपयोग मानकीकृत परीक्षणों को सुविधाजनक बनाने के लिए किया जाता है, जहां @Parameters विधि को मानकीकृत मानों के साथ एक सूची [] वापस करनी होती है, जिसे परीक्षण वर्ग निर्माता में डाला जाएगा। निष्कर्ष अलग-अलग उपयोगकर्ता अक्सर एक या दूसरे ढांचे की कुछ विशेषताओं को पसंद करते हैं। जेयूनिट अधिक व्यापक रूप से लोकप्रिय है और अक्सर डिफ़ॉल्ट रूप से मुख्यधारा के आई. डी. ई. के साथ भेजा जाता है। टेस्टएनजी विभिन्न प्रकार के परीक्षण के लिए अतिरिक्त विन्यास विकल्पों और क्षमता के लिए जाना जाता है। कौन सा अधिक उपयुक्त उपयोग संदर्भ और आवश्यकताओं पर निर्भर करता है। यूनिट परीक्षण ढांचे की सूची भी देखें JUnit xUnit संदर्भ बाहरी लिंक टेस्टएनजी होम पेज यूनिट परीक्षण ढांचे अपाचे लाइसेंस का उपयोग करके जावा प्लेटफॉर्म सॉफ्टवेयर