टेस्टएनजी: Difference between revisions

From Vigyanwiki
(Created page with "{{Infobox software | name = TestNG | logo = | screenshot = | caption = | developer = Cédric Beust, the TestNG team | latest release version = 7.6.1 | latest release date =...")
 
No edit summary
Line 14: Line 14:
}}
}}


TestNG [[जावा (प्रोग्रामिंग भाषा)]] के लिए एक परीक्षण [[सॉफ्टवेयर ढांचा]] है जो सेड्रिक बेस्ट द्वारा बनाया गया है और [[JUnit]] और [[NUnit]] से प्रेरित है। TestNG का डिज़ाइन लक्ष्य परीक्षण श्रेणियों की एक विस्तृत श्रृंखला को कवर करना है: इकाई, कार्यात्मक, एंड-टू-एंड, एकीकरण, आदि, अधिक शक्तिशाली और उपयोग में आसान कार्यात्मकताओं के साथ।
परीक्षणएनजी [[जावा (प्रोग्रामिंग भाषा)]] के लिए परीक्षण [[सॉफ्टवेयर ढांचा]] है जो सेड्रिक बेस्ट द्वारा बनाया गया है और [[JUnit|Jयूनिट]] और [[NUnit|Nयूनिट]] से प्रेरित है। परीक्षणएनजी  का डिज़ाइन लक्ष्य परीक्षण श्रेणियों की विस्तृत श्रृंखला को कवर करना है: इकाई, कार्यात्मक, एंड-टू-एंड, एकीकरण, आदि, अत्यधिक शक्तिशाली और उपयोग में आसान कार्यात्मकताओं के साथ हुआ था।


== विशेषताएँ ==
== विशेषताएँ ==
TestNG की मुख्य विशेषताओं में शामिल हैं:
परीक्षणएनजी की मुख्य विशेषताओं में सम्मिलित हैं:
# एनोटेशन समर्थन.
# टिप्पणी समर्थन.
# डेटा-संचालित परीक्षण के लिए समर्थन|डेटा-संचालित/पैरामीटरयुक्त परीक्षण (साथ)<code>@DataProvider</code> और/या XML कॉन्फ़िगरेशन).
# डेटा-संचालित परीक्षण के लिए समर्थन होता है| डेटा-संचालित/पैरामीटरयुक्त परीक्षण (साथ)होता है। <code>@DataProvider</code> और एक्सएमएल विन्यास).
# एक ही परीक्षण वर्ग के कई उदाहरणों के लिए समर्थन (साथ)<code>@Factory</code>)
# एक ही परीक्षण वर्ग के कई उदाहरणों के लिए समर्थन (साथ) होता है। <code>@Factory</code>)
# लचीला निष्पादन मॉडल। टेस्टएनजी को [[अपाचे चींटी]] द्वारा बिल्ड.एक्सएमएल (परिभाषित परीक्षण सूट के साथ या उसके बिना) के माध्यम से या दृश्य परिणामों के साथ एक आईडीई प्लगइन द्वारा चलाया जा सकता है। वहाँ कोई नहीं है <code>TestSuite</code> क्लास, जबकि परीक्षण सूट, समूह और चलाने के लिए चुने गए परीक्षण XML फ़ाइलों द्वारा परिभाषित और कॉन्फ़िगर किए जाते हैं।
# लचीला निष्पादन ढाँचा होता है। परीक्षणएनजी को [[अपाचे चींटी]] द्वारा बिल्ड.एक्सएमएल (परिभाषित परीक्षण सूट के साथ या उसके बिना) के माध्यम से या दृश्य परिणामों के साथ आईडीई प्लगइन द्वारा चलाया जा सकता है। वहाँ कोई नहीं है परीक्षण सूट वर्ग, चूकि परीक्षण सूट, समूह और चलाने के लिए चुने गए परीक्षण एक्सएमएल फ़ाइलों द्वारा परिभाषित और विन्यास किए जाते हैं।
# समवर्ती परीक्षण: उपलब्ध विभिन्न नीतियों के साथ मनमाने ढंग से बड़े थ्रेड पूल में परीक्षण चलाएं (अपने स्वयं के थ्रेड में सभी विधियां, प्रति परीक्षण वर्ग एक थ्रेड, आदि), और परीक्षण करें कि कोड मल्टीथ्रेड सुरक्षित है या नहीं।
# समवर्ती परीक्षण: उपलब्ध विभिन्न नीतियों के साथ मनमाने ढंग से बड़े सूत्रण पूल में परीक्षण चलाएं (अपने स्वयं के सूत्रण में सभी विधियां, प्रति परीक्षण वर्ग सूत्रण, आदि), और परीक्षण करें कि कोड बहुसूत्रण  सुरक्षित है या नहीं।
# अधिक लचीलेपन के लिए [[बीनशेल]] को एंबेड करता है।
# अत्यधिक लचीलेपन के लिए [[बीनशेल]] को एंबेड करता है।
# रनटाइम और लॉगिंग के लिए डिफ़ॉल्ट [[जावा डेवलपमेंट किट]] फ़ंक्शन (कोई निर्भरता नहीं)
# रनटाइम और लॉगिंग के लिए डिफ़ॉल्ट [[जावा डेवलपमेंट किट]] फ़ंक्शन (कोई निर्भरता नहीं) होता है।
# एप्लिकेशन सर्वर परीक्षण के लिए निर्भर तरीके।{{clarify|date=May 2012}}
# आवेदन सर्वर परीक्षण के लिए निर्भर तरीके से होता है।{{clarify|date=May 2012}}
# वितरित परीक्षण: स्लेव मशीनों पर परीक्षणों के वितरण की अनुमति देता है।
# वितरित परीक्षण: स्लेव मशीनों पर परीक्षणों के वितरण की अनुमति देता है।


===डेटा प्रदाता===
===डेटा प्रदाता===


TestNG में एक डेटा प्रदाता एक परीक्षण वर्ग में एक विधि है, जो निर्भर परीक्षण विधियों के लिए विभिन्न वास्तविक मूल्यों की एक श्रृंखला प्रदान करता है।
परीक्षणएनजी में एक डेटा प्रदाता परीक्षण वर्ग में एक विधि है, जो निर्भर परीक्षण विधियों के लिए विभिन्न वास्तविक मूल्यों की श्रृंखला प्रदान करता है।


उदाहरण:
उदाहरण:
Line 66: Line 66:
}
}
</syntaxhighlight>
</syntaxhighlight>
डेटा प्रदाता का लौटाया गया प्रकार निम्नलिखित दो प्रकारों में से एक हो सकता है:
डेटा प्रदाता का लौटाया गया प्रकार निम्नलिखित दो प्रकारों में से हो सकता है:
*वस्तुओं की सारणी की एक सारणी (<code>Object[][]</code>) जहां पहले आयाम का आकार परीक्षण विधि को लागू करने की संख्या है और दूसरे आयाम के आकार में वस्तुओं की एक श्रृंखला होती है जो परीक्षण विधि के पैरामीटर प्रकारों के साथ संगत होनी चाहिए।
*वस्तुओं की सारणी की एक सारणी (<code>Object[][]</code>) जहां पहले आयाम का आकार परीक्षण विधि को क्रियान्वित करने की संख्या है और दूसरे आयाम के आकार में वस्तुओं की श्रृंखला होती है जो परीक्षण विधि के पैरामीटर प्रकारों के साथ संगत होनी चाहिए थी।
*एक <code>Iterator<Object[]></code>. फर्क सिर्फ इतना है <code>Object[][]</code> क्या यह कि Iterator आपको अपना परीक्षण डेटा आराम से बनाने की सुविधा देता है। TestNG एक-एक करके इस पुनरावर्तक द्वारा लौटाए गए मापदंडों के साथ पुनरावर्तक और फिर परीक्षण विधि को लागू करेगा। यह विशेष रूप से उपयोगी है यदि आपके पास विधि को पास करने के लिए बहुत सारे पैरामीटर सेट हैं और आप उन सभी को पहले से नहीं बनाना चाहते हैं।
*एक <code>Iterator<Object[]></code>. फर्क सिर्फ इतना है <code>Object[][]</code> क्या यह कि इटेटर आपको अपना परीक्षण डेटा आराम से बनाने की सुविधा देता है। परीक्षणएनजी एक-एक करके इस पुनरावर्तक द्वारा लौटाए गए मापदंडों के साथ पुनरावर्तक और फिर परीक्षण विधि को क्रियान्वित करता है। यह विशेष रूप से उपयोगी है यदि आपके पास विधि को पास करने के लिए बहुत सारे पैरामीटर समुच्चय हैं और आप उन सभी को पहले से नहीं बनाना चाहते हैं।


=== उपकरण समर्थन ===
=== उपकरण समर्थन ===


टेस्टएनजी तीन प्रमुख जावा आईडीई - [[ ग्रहण (सॉफ्टवेयर) ]], [[मैं विचार समझता हूं]] और [[ NetBeans ]] में से प्रत्येक द्वारा, आउट-ऑफ-द-बॉक्स या प्लग-इन के माध्यम से समर्थित है। यह अपाचे चींटी के लिए एक कस्टम कार्य के साथ आता है और [[अपाचे मावेन]] बिल्ड सिस्टम द्वारा समर्थित है। हडसन (सॉफ़्टवेयर) निरंतर एकीकरण सर्वर में TestNG के लिए अंतर्निहित समर्थन है और यह समय के साथ परीक्षण परिणामों को ट्रैक और चार्ट करने में सक्षम है। अधिकांश जावा [[ कोड कवरेज़ ]] उपकरण, जैसे [[छत]], टेस्टएनजी के साथ निर्बाध रूप से काम करते हैं।
परीक्षणएनजी तीन प्रमुख जावा आईडीई - [[ ग्रहण (सॉफ्टवेयर) ]], [[मैं विचार समझता हूं]] और [[ NetBeans | नेटबीन्स]] में से प्रत्येक द्वारा, आउट-ऑफ-द-बॉक्स या प्लग-इन के माध्यम से समर्थित है। यह अपाचे चींटी के लिए कस्टम कार्य के साथ आता है और [[अपाचे मावेन]] बिल्ड सिस्टम द्वारा समर्थित है। हडसन (सॉफ़्टवेयर) निरंतर एकीकरण सर्वर में परीक्षणएनजी के लिए अंतर्निहित समर्थन है और यह समय के साथ परीक्षण परिणामों को ट्रैक और चार्ट करने में सक्षम होता है। अधिकांश जावा [[ कोड कवरेज़ ]] उपकरण, जैसे [[छत]], परीक्षणएनजी के साथ निर्बाध रूप से काम करते हैं।


नोट: एक्लिप्स के लिए टेस्टएनजी समर्थन केवल 2018-09 (4.9) तक के एक्लिप्स संस्करणों के लिए एक्लिप्स मार्केटप्लेस में एम्बेडेड है। एक्लिप्स के बाद के संस्करणों के लिए, TestNG को TestNG साइट के निर्देशों के अनुसार मैन्युअल रूप से स्थापित किया जाना चाहिए।<ref>{{cite web | url=https://marketplace.eclipse.org/content/testng-eclipse | title=TestNG for Eclipse }}</ref>
नोट: ग्रहण के लिए परीक्षणएनजी समर्थन केवल 2018-09 (4.9) तक के ग्रहण संस्करणों के लिए ग्रहण विपणन स्थान में एम्बेडेड होता है। ग्रहण के बाद के संस्करणों के लिए, परीक्षणएनजी  को परीक्षणएनजी साइट के निर्देशों के अनुसार नियमावली रूप से स्थापित किया जाना चाहिए था।<ref>{{cite web | url=https://marketplace.eclipse.org/content/testng-eclipse | title=TestNG for Eclipse }}</ref>




=== रिपोर्टिंग ===
=== रिपोर्टिंग ===
TestNG HTML और XML स्वरूपों में परीक्षण रिपोर्ट तैयार करता है। XML आउटपुट को चींटी JUnitReport कार्य द्वारा रूपांतरित किया जा सकता है<ref>[http://ant.apache.org/manual/OptionalTasks/junitreport.html JUnitReport] {{Webarchive|url=https://web.archive.org/web/20100224011201/http://ant.apache.org/manual/OptionalTasks/junitreport.html |date=2010-02-24 }}</ref> JUnit का उपयोग करते समय प्राप्त रिपोर्टों के समान रिपोर्ट तैयार करना। संस्करण 4.6 के बाद से, TestNG एक रिपोर्टर एपीआई भी प्रदान करता है<ref>{{Cite web |url=http://beust.com/weblog2/archives/000371.html |title=Announcing TestNG 4.6 |access-date=2010-03-04 |archive-date=2010-12-12 |archive-url=https://web.archive.org/web/20101212150840/http://beust.com/weblog2/archives/000371.html |url-status=dead }}</ref> जो तीसरे पक्ष के रिपोर्ट जेनरेटर की अनुमति देता है, जैसे कि रिपोर्टएनजी,<ref>[http://blog.uncommons.org/2009/11/02/reportng-1-0-final-released/ ReportNG 1.0 Final Released]</ref>
परीक्षणएनजी एचटीएमएल और एक्सएमएल स्वरूपों में परीक्षण रिपोर्ट तैयार करता है। एक्सएमएल आउटपुट को चींटी JUnitReport कार्य द्वारा रूपांतरित किया जा सकता है<ref>[http://ant.apache.org/manual/OptionalTasks/junitreport.html JUnitReport] {{Webarchive|url=https://web.archive.org/web/20100224011201/http://ant.apache.org/manual/OptionalTasks/junitreport.html |date=2010-02-24 }}</ref> JUnit का उपयोग करते समय प्राप्त रिपोर्टों के समान रिपोर्ट तैयार करना। संस्करण 4.6 के बाद से, TestNG एक रिपोर्टर एपीआई भी प्रदान करता है<ref>{{Cite web |url=http://beust.com/weblog2/archives/000371.html |title=Announcing TestNG 4.6 |access-date=2010-03-04 |archive-date=2010-12-12 |archive-url=https://web.archive.org/web/20101212150840/http://beust.com/weblog2/archives/000371.html |url-status=dead }}</ref> जो तीसरे पक्ष के रिपोर्ट जेनरेटर की अनुमति देता है, जैसे कि रिपोर्टएनजी,<ref>[http://blog.uncommons.org/2009/11/02/reportng-1-0-final-released/ ReportNG 1.0 Final Released]</ref>
PDFngरिपोर्ट<ref>[https://uttesh.github.io/pdfngreport/ PDFngreport 1.0.0]</ref> और टेस्टएनजी-एक्सएसएलटी,<ref>[https://code.google.com/p/testng-xslt/ TestNG XSL Reports]</ref> इस्तेमाल किया जाएगा।
 
पिडीएफ<sub>एनजी</sub> रिपोर्ट<ref>[https://uttesh.github.io/pdfngreport/ PDFngreport 1.0.0]</ref> और टेस्टएनजी-एक्सएसएलटी,<ref>[https://code.google.com/p/testng-xslt/ TestNG XSL Reports]</ref> इस्तेमाल किया जाता है।


==जुनीट के साथ तुलना==
==जुनीट के साथ तुलना==


TestNG की एक अन्य परीक्षण उपकरण JUnit के साथ लंबे समय से प्रतिद्वंद्विता है। प्रत्येक ढांचे में अंतर और संबंधित फायदे हैं। [[स्टैक ओवरफ़्लो]] चर्चाएँ इस विवाद को दर्शाती हैं।<ref>{{cite web|url=https://stackoverflow.com/questions/6658/junit-vs-testng |title=जूनिट बनाम टेस्टएनजी|publisher=stackoverflow.com}}</ref><ref>{{cite web |url=https://stackoverflow.com/questions/3438785/junit-vs-testng |title=जुनीट बनाम टेस्टएनजी|publisher=stackoverflow.com |url-status=dead |archiveurl=https://web.archive.org/web/20140202131938/http://stackoverflow.com/questions/3438785/junit-vs-testng |archivedate=2014-02-02 }}</ref><ref>{{cite web|url=https://stackoverflow.com/questions/3411768/which-unittest-framework-to-learn-for-java-now |title=Which UnitTest framework to learn for Java now? |publisher=stackoverflow.com}}</ref>
परीक्षणएनजी की एक अन्य परीक्षण उपकरण JUnit के साथ लंबे समय से प्रतिद्वंद्विता है। प्रत्येक ढांचे में अंतर और संबंधित फायदे हैं। [[स्टैक ओवरफ़्लो]] चर्चाएँ इस विवाद को दर्शाती हैं।<ref>{{cite web|url=https://stackoverflow.com/questions/6658/junit-vs-testng |title=जूनिट बनाम टेस्टएनजी|publisher=stackoverflow.com}}</ref><ref>{{cite web |url=https://stackoverflow.com/questions/3438785/junit-vs-testng |title=जुनीट बनाम टेस्टएनजी|publisher=stackoverflow.com |url-status=dead |archiveurl=https://web.archive.org/web/20140202131938/http://stackoverflow.com/questions/3438785/junit-vs-testng |archivedate=2014-02-02 }}</ref><ref>{{cite web|url=https://stackoverflow.com/questions/3411768/which-unittest-framework-to-learn-for-java-now |title=Which UnitTest framework to learn for Java now? |publisher=stackoverflow.com}}</ref>




===टिप्पणियाँ===
===टिप्पणियाँ===


JUnit 5 में, अधिकांश परिस्थितियों में @BeforeAll और @AfterAll तरीकों को स्थिर घोषित करना होगा।<ref>{{cite web|url=https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations | title=लेखन परीक्षण - टिप्पणियाँ| website=junit.org}}</ref> TestNG में यह बाधा नहीं है।
JUnit 5 में, अधिकांश परिस्थितियों में @BeforeAll और @AfterAll तरीकों को स्थिर घोषित करना होता है ।<ref>{{cite web|url=https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations | title=लेखन परीक्षण - टिप्पणियाँ| website=junit.org}}</ref> परीक्षणएनजी में यह बाधा नहीं होता है।


टेस्टएनजी में टेस्ट सूट और समूहों के लिए चार अतिरिक्त सेटअप/टियरडाउन एनोटेशन जोड़े शामिल हैं: @BeforeSuite, @AfterSuite, @BeforeTest, @AfterTest, @BeforeGroup और @AfterGroup, @BeforeMethod और @AfterMethod।
परीक्षणएनजी में टेस्ट सूट और समूहों के लिए चार अतिरिक्त सेटअप/टियरडाउन एनोटेशन जोड़े शामिल हैं: @BeforeSuite, @AfterSuite, @BeforeTest, @AfterTest, @BeforeGroup और @AfterGroup, @BeforeMethod और @AfterMethod।
TestNG सेलेनियम का उपयोग करके किसी एप्लिकेशन के परीक्षण को स्वचालित करने के लिए भी सहायता प्रदान करता है।
 
परीक्षणएनजी सेलेनियम का उपयोग करके किसी एप्लिकेशन के परीक्षण को स्वचालित करने के लिए भी सहायता प्रदान करता है।


===पैरामीटरीकृत परीक्षण===
===पैरामीटरीकृत परीक्षण===
Line 97: Line 99:
[[पैरामीटरयुक्त परीक्षण]] दोनों उपकरणों में लागू किया जाता है, लेकिन काफी अलग तरीकों से।
[[पैरामीटरयुक्त परीक्षण]] दोनों उपकरणों में लागू किया जाता है, लेकिन काफी अलग तरीकों से।


टेस्टएनजी के पास परीक्षण विधि में अलग-अलग पैरामीटर मान प्रदान करने के दो तरीके हैं: testng.xml सेट करके, और @DataProvider विधि को परिभाषित करके।<ref>{{cite web|url=http://www.qacreators.com/category/testng-is-an-unit-testing-framework |title=What is TestNG? |publisher=qacreators.com}}</ref>
टेस्टएनजी के पास परीक्षण विधि में अलग-अलग पैरामीटर मान प्रदान करने के दो तरीके हैं: परीक्षणएनजी.xml सेट करके, और @DataProvider विधि को परिभाषित करके।<ref>{{cite web|url=http://www.qacreators.com/category/testng-is-an-unit-testing-framework |title=What is TestNG? |publisher=qacreators.com}}</ref>
 
JUnit 5 में, @ParameterizedTest एनोटेशन पैरामीटरयुक्त परीक्षण की अनुमति देता है। इस एनोटेशन को एक अन्य एनोटेशन के साथ जोड़ा गया है जो पैरामीटरयुक्त तर्कों के स्रोत की घोषणा करता है, जैसे @ValueSource या @EnumSource। @ArgumentsSource का उपयोग करने से उपयोगकर्ता को अधिक गतिशीलता लागू करने की अनुमति मिलती है <code>ArgumentsProvider</code>.<ref>{{cite web |title=JUnit 5 User Guide |url=https://junit.org/junit5/docs/current/user-guide/ |website=junit.org}}</ref> JUnit 4 में, @RunWith और @Parameters का उपयोग पैरामीटरयुक्त परीक्षणों को सुविधाजनक बनाने के लिए किया जाता है, जहां @Parameters विधि को वापस लौटना होता है <code>List[]</code> पैरामीटरयुक्त मानों के साथ, जिसे टेस्ट क्लास कंस्ट्रक्टर में फीड किया जाएगा।
JUnit 5 में, @ParameterizedTest एनोटेशन पैरामीटरयुक्त परीक्षण की अनुमति देता है। इस एनोटेशन को एक अन्य एनोटेशन के साथ जोड़ा गया है जो पैरामीटरयुक्त तर्कों के स्रोत की घोषणा करता है, जैसे @ValueSource या @EnumSource। @ArgumentsSource का उपयोग करने से उपयोगकर्ता को अधिक गतिशीलता लागू करने की अनुमति मिलती है <code>ArgumentsProvider</code>.<ref>{{cite web |title=JUnit 5 User Guide |url=https://junit.org/junit5/docs/current/user-guide/ |website=junit.org}}</ref> JUnit 4 में, @RunWith और @Parameters का उपयोग पैरामीटरयुक्त परीक्षणों को सुविधाजनक बनाने के लिए किया जाता है, जहां @Parameters विधि को वापस लौटना होता है <code>List[]</code> पैरामीटरयुक्त मानों के साथ, जिसे टेस्ट क्लास कंस्ट्रक्टर में फीड किया जाएगा।


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


==यह भी देखें==
==यह भी देखें==

Revision as of 11:16, 18 July 2023

TestNG
Developer(s)Cédric Beust, the TestNG team
Stable release
7.6.1 / July 4, 2022; 2 years ago (2022-07-04)[1]
Written inJava
Operating systemCross-platform
TypeUnit testing tool
LicenseApache License 2.0[2]
Websitetestng.org

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

विशेषताएँ

परीक्षणएनजी की मुख्य विशेषताओं में सम्मिलित हैं:

  1. टिप्पणी समर्थन.
  2. डेटा-संचालित परीक्षण के लिए समर्थन होता है| डेटा-संचालित/पैरामीटरयुक्त परीक्षण (साथ)होता है। @DataProvider और एक्सएमएल विन्यास).
  3. एक ही परीक्षण वर्ग के कई उदाहरणों के लिए समर्थन (साथ) होता है। @Factory)
  4. लचीला निष्पादन ढाँचा होता है। परीक्षणएनजी को अपाचे चींटी द्वारा बिल्ड.एक्सएमएल (परिभाषित परीक्षण सूट के साथ या उसके बिना) के माध्यम से या दृश्य परिणामों के साथ आईडीई प्लगइन द्वारा चलाया जा सकता है। वहाँ कोई नहीं है परीक्षण सूट वर्ग, चूकि परीक्षण सूट, समूह और चलाने के लिए चुने गए परीक्षण एक्सएमएल फ़ाइलों द्वारा परिभाषित और विन्यास किए जाते हैं।
  5. समवर्ती परीक्षण: उपलब्ध विभिन्न नीतियों के साथ मनमाने ढंग से बड़े सूत्रण पूल में परीक्षण चलाएं (अपने स्वयं के सूत्रण में सभी विधियां, प्रति परीक्षण वर्ग सूत्रण, आदि), और परीक्षण करें कि कोड बहुसूत्रण सुरक्षित है या नहीं।
  6. अत्यधिक लचीलेपन के लिए बीनशेल को एंबेड करता है।
  7. रनटाइम और लॉगिंग के लिए डिफ़ॉल्ट जावा डेवलपमेंट किट फ़ंक्शन (कोई निर्भरता नहीं) होता है।
  8. आवेदन सर्वर परीक्षण के लिए निर्भर तरीके से होता है।[clarification needed]
  9. वितरित परीक्षण: स्लेव मशीनों पर परीक्षणों के वितरण की अनुमति देता है।

डेटा प्रदाता

परीक्षणएनजी में एक डेटा प्रदाता परीक्षण वर्ग में एक विधि है, जो निर्भर परीक्षण विधियों के लिए विभिन्न वास्तविक मूल्यों की श्रृंखला प्रदान करता है।

उदाहरण:

	//This method will provide data to any test method that declares that its Data Provider is named "provider1". 
	@DataProvider(name = "provider1")
	public Object[][] createData1() {
		return new Object[][] { 
			{ "Cedric", new Integer(36) },
			{ "Anne", new Integer(37) }
		};
	}

	// This test method declares that its data should be supplied by the Data Provider named "provider1".
	@Test(dataProvider = "provider1")
	public void verifyData1(String n1, Integer n2) {
		System.out.println(n1 + " " + n2);
	}

	// A data provider which returns an iterator of parameter arrays.
	@DataProvider(name = "provider2")
	public Iterator<Object[]> createData() {
		return new MyIterator(...);
	}	

	// A data provider with an argument of the type java.lang.reflect.Method.
	// It is particularly useful when several test methods use the same 
	// provider and you want it to return different values depending on 
	// which test method it is serving. 
	@DataProvider(name = "provider3")
	public Object[][] createData(Method m) {
		System.out.println(m.getName()); 
		return new Object[][] { new Object[] { "Cedric" } };
	}

डेटा प्रदाता का लौटाया गया प्रकार निम्नलिखित दो प्रकारों में से हो सकता है:

  • वस्तुओं की सारणी की एक सारणी (Object[][]) जहां पहले आयाम का आकार परीक्षण विधि को क्रियान्वित करने की संख्या है और दूसरे आयाम के आकार में वस्तुओं की श्रृंखला होती है जो परीक्षण विधि के पैरामीटर प्रकारों के साथ संगत होनी चाहिए थी।
  • एक Iterator<Object[]>. फर्क सिर्फ इतना है Object[][] क्या यह कि इटेटर आपको अपना परीक्षण डेटा आराम से बनाने की सुविधा देता है। परीक्षणएनजी एक-एक करके इस पुनरावर्तक द्वारा लौटाए गए मापदंडों के साथ पुनरावर्तक और फिर परीक्षण विधि को क्रियान्वित करता है। यह विशेष रूप से उपयोगी है यदि आपके पास विधि को पास करने के लिए बहुत सारे पैरामीटर समुच्चय हैं और आप उन सभी को पहले से नहीं बनाना चाहते हैं।

उपकरण समर्थन

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

नोट: ग्रहण के लिए परीक्षणएनजी समर्थन केवल 2018-09 (4.9) तक के ग्रहण संस्करणों के लिए ग्रहण विपणन स्थान में एम्बेडेड होता है। ग्रहण के बाद के संस्करणों के लिए, परीक्षणएनजी को परीक्षणएनजी साइट के निर्देशों के अनुसार नियमावली रूप से स्थापित किया जाना चाहिए था।[3]


रिपोर्टिंग

परीक्षणएनजी एचटीएमएल और एक्सएमएल स्वरूपों में परीक्षण रिपोर्ट तैयार करता है। एक्सएमएल आउटपुट को चींटी JUnitReport कार्य द्वारा रूपांतरित किया जा सकता है[4] JUnit का उपयोग करते समय प्राप्त रिपोर्टों के समान रिपोर्ट तैयार करना। संस्करण 4.6 के बाद से, TestNG एक रिपोर्टर एपीआई भी प्रदान करता है[5] जो तीसरे पक्ष के रिपोर्ट जेनरेटर की अनुमति देता है, जैसे कि रिपोर्टएनजी,[6]

पिडीएफएनजी रिपोर्ट[7] और टेस्टएनजी-एक्सएसएलटी,[8] इस्तेमाल किया जाता है।

जुनीट के साथ तुलना

परीक्षणएनजी की एक अन्य परीक्षण उपकरण JUnit के साथ लंबे समय से प्रतिद्वंद्विता है। प्रत्येक ढांचे में अंतर और संबंधित फायदे हैं। स्टैक ओवरफ़्लो चर्चाएँ इस विवाद को दर्शाती हैं।[9][10][11]


टिप्पणियाँ

JUnit 5 में, अधिकांश परिस्थितियों में @BeforeAll और @AfterAll तरीकों को स्थिर घोषित करना होता है ।[12] परीक्षणएनजी में यह बाधा नहीं होता है।

परीक्षणएनजी में टेस्ट सूट और समूहों के लिए चार अतिरिक्त सेटअप/टियरडाउन एनोटेशन जोड़े शामिल हैं: @BeforeSuite, @AfterSuite, @BeforeTest, @AfterTest, @BeforeGroup और @AfterGroup, @BeforeMethod और @AfterMethod।

परीक्षणएनजी सेलेनियम का उपयोग करके किसी एप्लिकेशन के परीक्षण को स्वचालित करने के लिए भी सहायता प्रदान करता है।

पैरामीटरीकृत परीक्षण

पैरामीटरयुक्त परीक्षण दोनों उपकरणों में लागू किया जाता है, लेकिन काफी अलग तरीकों से।

टेस्टएनजी के पास परीक्षण विधि में अलग-अलग पैरामीटर मान प्रदान करने के दो तरीके हैं: परीक्षणएनजी.xml सेट करके, और @DataProvider विधि को परिभाषित करके।[13]

JUnit 5 में, @ParameterizedTest एनोटेशन पैरामीटरयुक्त परीक्षण की अनुमति देता है। इस एनोटेशन को एक अन्य एनोटेशन के साथ जोड़ा गया है जो पैरामीटरयुक्त तर्कों के स्रोत की घोषणा करता है, जैसे @ValueSource या @EnumSource। @ArgumentsSource का उपयोग करने से उपयोगकर्ता को अधिक गतिशीलता लागू करने की अनुमति मिलती है ArgumentsProvider.[14] JUnit 4 में, @RunWith और @Parameters का उपयोग पैरामीटरयुक्त परीक्षणों को सुविधाजनक बनाने के लिए किया जाता है, जहां @Parameters विधि को वापस लौटना होता है List[] पैरामीटरयुक्त मानों के साथ, जिसे टेस्ट क्लास कंस्ट्रक्टर में फीड किया जाएगा।

निष्कर्ष

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

यह भी देखें

  • यूनिट परीक्षण ढाँचे की सूची
  • जुनिट
  • xयूनिट

संदर्भ

  1. | Project GitHub releases page
  2. "Apache License Version 2.0". January 2004. Archived from the original on 2013-12-21.
  3. "TestNG for Eclipse".
  4. JUnitReport Archived 2010-02-24 at the Wayback Machine
  5. "Announcing TestNG 4.6". Archived from the original on 2010-12-12. Retrieved 2010-03-04.
  6. ReportNG 1.0 Final Released
  7. PDFngreport 1.0.0
  8. TestNG XSL Reports
  9. "जूनिट बनाम टेस्टएनजी". stackoverflow.com.
  10. "जुनीट बनाम टेस्टएनजी". stackoverflow.com. Archived from the original on 2014-02-02.
  11. "Which UnitTest framework to learn for Java now?". stackoverflow.com.
  12. "लेखन परीक्षण - टिप्पणियाँ". junit.org.
  13. "What is TestNG?". qacreators.com.
  14. "JUnit 5 User Guide". junit.org.


बाहरी संबंध