टेस्टएनजी

From Vigyanwiki
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.


बाहरी संबंध