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

From Vigyanwiki
No edit summary
No edit summary
Line 19: Line 19:
परीक्षणएनजी की मुख्य विशेषताओं में सम्मिलित हैं:
परीक्षणएनजी की मुख्य विशेषताओं में सम्मिलित हैं:
# टिप्पणी समर्थन.
# टिप्पणी समर्थन.
# डेटा-संचालित परीक्षण के लिए समर्थन होता है| डेटा-संचालित/पैरामीटरयुक्त परीक्षण (साथ)होता है। <code>@DataProvider</code> और एक्सएमएल विन्यास).
# डेटा-संचालित परीक्षण के लिए समर्थन होता है| डेटा-संचालित/पैरामीटरयुक्त परीक्षण (साथ)होता है। <code>@डेटा प्रदाता</code>और एक्सएमएल विन्यास).
# एक ही परीक्षण वर्ग के कई उदाहरणों के लिए समर्थन (साथ) होता है। <code>@Factory</code>)
# एक ही परीक्षण वर्ग के कई उदाहरणों के लिए समर्थन (साथ) होता है। <code>@कारख़ाना</code>)
# लचीला निष्पादन ढाँचा होता है। परीक्षणएनजी को [[अपाचे चींटी]] द्वारा बिल्ड.एक्सएमएल (परिभाषित परीक्षण सूट के साथ या उसके बिना) के माध्यम से या दृश्य परिणामों के साथ आईडीई प्लगइन द्वारा चलाया जा सकता है। वहाँ कोई नहीं है परीक्षण सूट वर्ग, चूकि परीक्षण सूट, समूह और चलाने के लिए चुने गए परीक्षण एक्सएमएल फ़ाइलों द्वारा परिभाषित और विन्यास किए जाते हैं।
# लचीला निष्पादन ढाँचा होता है। परीक्षणएनजी को [[अपाचे चींटी]] द्वारा बिल्ड.एक्सएमएल (परिभाषित परीक्षण सूट के साथ या उसके बिना) के माध्यम से या दृश्य परिणामों के साथ आईडीई प्लगइन द्वारा चलाया जा सकता है। वहाँ कोई नहीं है परीक्षण सूट वर्ग, चूकि परीक्षण सूट, समूह और चलाने के लिए चुने गए परीक्षण एक्सएमएल फ़ाइलों द्वारा परिभाषित और विन्यास किए जाते हैं।
# समवर्ती परीक्षण: उपलब्ध विभिन्न नीतियों के साथ मनमाने ढंग से बड़े सूत्रण पूल में परीक्षण चलाएं (अपने स्वयं के सूत्रण में सभी विधियां, प्रति परीक्षण वर्ग सूत्रण, आदि), और परीक्षण करें कि कोड बहुसूत्रण  सुरक्षित है या नहीं।
# समवर्ती परीक्षण: उपलब्ध विभिन्न नीतियों के साथ मनमाने ढंग से बड़े सूत्रण पूल में परीक्षण चलाएं (अपने स्वयं के सूत्रण में सभी विधियां, प्रति परीक्षण वर्ग सूत्रण, आदि), और परीक्षण करें कि कोड बहुसूत्रण  सुरक्षित है या नहीं।
Line 30: Line 30:
===डेटा प्रदाता===
===डेटा प्रदाता===


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


उदाहरण:
उदाहरण:
Line 72: Line 72:
=== उपकरण समर्थन ===
=== उपकरण समर्थन ===


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


नोट: ग्रहण के लिए परीक्षणएनजी समर्थन केवल 2018-09 (4.9) तक के ग्रहण संस्करणों के लिए ग्रहण विपणन स्थान में अंतर्निहित होता है। ग्रहण के बाद के संस्करणों के लिए, परीक्षणएनजी  को परीक्षणएनजी साइट के निर्देशों के अनुसार नियमावली रूप से स्थापित किया जाना चाहिए था।<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>
Line 89: Line 89:
===टिप्पणियाँ===
===टिप्पणियाँ===


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


परीक्षणएनजी सेलेनियम का उपयोग करके किसी आवेदन के परीक्षण को स्वचालित करने के लिए भी सहायता प्रदान करता है।
परीक्षणएनजी सेलेनियम का उपयोग करके किसी आवेदन के परीक्षण को स्वचालित करने के लिए भी सहायता प्रदान करता है।
Line 101: Line 101:
परीक्षणएनजी के पास परीक्षण विधि में अलग-अलग पैरामीटर मान प्रदान करने के दो तरीके हैं: परीक्षणएनजी.एक्सएमएल समुच्चय करके,और @डेटा प्रदाता विधि को परिभाषित करके।<ref>{{cite web|url=http://www.qacreators.com/category/testng-is-an-unit-testing-framework |title=What is TestNG? |publisher=qacreators.com}}</ref>
परीक्षणएनजी के पास परीक्षण विधि में अलग-अलग पैरामीटर मान प्रदान करने के दो तरीके हैं: परीक्षणएनजी.एक्सएमएल समुच्चय करके,और @डेटा प्रदाता विधि को परिभाषित करके।<ref>{{cite web|url=http://www.qacreators.com/category/testng-is-an-unit-testing-framework |title=What is TestNG? |publisher=qacreators.com}}</ref>


Jयूनिट 5 में, @पैरामीटरयुक्त परीक्षण टिप्पणी पैरामीटरयुक्त परीक्षण की अनुमति देता है। इस टिप्पणी को एक अन्य टिप्पणी के साथ जोड़ा गया है जो पैरामीटरयुक्त तर्कों के स्रोत की घोषणा करता है, जैसे @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> Jयूनिट 4 में, @RunWith और @पैरामीटर का उपयोग पैरामीटरयुक्त परीक्षणों को सुविधाजनक बनाने के लिए किया जाता है, जहां @पैरामीटर विधि को वापस लौटना होता है <code>List[]</code> पैरामीटरयुक्त मानों के साथ, जिसे परीक्षण वर्ग कंस्ट्रक्टर में प्रति किया जाता है।
Jयूनिट 5 में, @पैरामीटरयुक्त परीक्षण टिप्पणी पैरामीटरयुक्त परीक्षण की अनुमति देता है। इस टिप्पणी को एक अन्य टिप्पणी के साथ जोड़ा गया है जो पैरामीटरयुक्त तर्कों के स्रोत की घोषणा करता है, जैसे @मूल्य स्रोत या @प्रगणित स्रोत। @तर्क स्रोत का उपयोग करने से उपयोगकर्ता को अत्यधिक गतिशीलता क्रियान्वित करने की अनुमति मिलती है तर्क प्रदाता.<ref>{{cite web |title=JUnit 5 User Guide |url=https://junit.org/junit5/docs/current/user-guide/ |website=junit.org}}</ref> Jयूनिट 4 में, @साथ चलना और @पैरामीटर का उपयोग पैरामीटरयुक्त परीक्षणों को सुविधाजनक बनाने के लिए किया जाता है, जहां @पैरामीटर विधि को वापस लौटना होता है <code>List[]</code> पैरामीटरयुक्त मानों के साथ, जिसे परीक्षण वर्ग निर्माता में प्रति किया जाता है।


===निष्कर्ष===
===निष्कर्ष===

Revision as of 12:20, 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. डेटा-संचालित परीक्षण के लिए समर्थन होता है| डेटा-संचालित/पैरामीटरयुक्त परीक्षण (साथ)होता है। @डेटा प्रदाताऔर एक्सएमएल विन्यास).
  3. एक ही परीक्षण वर्ग के कई उदाहरणों के लिए समर्थन (साथ) होता है। @कारख़ाना)
  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]


रिपोर्टिंग

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

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

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

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


टिप्पणियाँ

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

परीक्षणएनजी में परीक्षण सूट और समूहों के लिए चार अतिरिक्त सेटअप/टियरडाउन टिप्पणी जोड़े सम्मिलित होता हैं: @सूट से पहले , @सूट के बाद, @परीक्षण से पहले, @परीक्षण के बाद, @ समूह से पहले और @ समूह के बाद, @विधि से पहले और @विधि के बाद।

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

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

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

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

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

निष्कर्ष

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

यह भी देखें

  • यूनिट परीक्षण ढाँचे की सूची
  • जुनिट
  • 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.


बाहरी संबंध