TestNG - ग्रुप टेस्ट
समूह परीक्षण TestNG में एक नई अभिनव विशेषता है, जो JUnit ढांचे में मौजूद नहीं है। यह आपको विधियों को उचित भागों में भेजने और परीक्षण विधियों के परिष्कृत समूह बनाने की अनुमति देता है।
न केवल आप उन विधियों को घोषित कर सकते हैं जो समूहों से संबंधित हैं, बल्कि आप उन समूहों को भी निर्दिष्ट कर सकते हैं जिनमें अन्य समूह हैं। फिर, TestNG को आमंत्रित किया जा सकता है और समूहों के एक निश्चित सेट (या नियमित अभिव्यक्ति) को शामिल करने के लिए कहा जा सकता है, जबकि एक अन्य सेट को छोड़कर।
समूह परीक्षण अधिकतम लचीलेपन प्रदान करते हैं कि आप अपने परीक्षणों को कैसे विभाजित करते हैं, और अगर आपको दो अलग-अलग परीक्षणों को वापस चलाना है तो आपको कुछ भी फिर से करने की आवश्यकता नहीं है।
समूह <test> टैग का उपयोग करके आपके testng.xml फ़ाइल में निर्दिष्ट हैं। यह <परीक्षण> या <सूट> टैग के तहत पाया जा सकता है। <सूट> टैग में निर्दिष्ट समूह नीचे दिए गए सभी <परीक्षण> टैग पर लागू होते हैं।
अब, आइए एक उदाहरण लेते हैं कि समूह परीक्षण कैसे काम करता है।
एक कक्षा बनाएँ
परीक्षण करने के लिए एक जावा वर्ग बनाएँ, कहते हैं, MessageUtil.java में C:\> TestNG_WORKSPACE।
/*
* This class prints the given message on console.
*/
public class MessageUtil {
private String message;
// Constructor
// @param message to be printed
public MessageUtil(String message) {
this.message = message;
}
// prints the message
public String printMessage() {
System.out.println(message);
return message;
}
// add "tutorialspoint" to the message
public String salutationMessage() {
message = "tutorialspoint" + message;
System.out.println(message);
return message;
}
// add "www." to the message
public String exitMessage() {
message = "www." + message;
System.out.println(message);
return message;
}
}
टेस्ट केस क्लास बनाएं
एक जावा टेस्ट क्लास बनाएं, कहें, GroupTestExample.java।
परीक्षण विधियाँ जोड़ें, TestPrintMessage () और testSalutationMessage (), अपने परीक्षण वर्ग में।
परीक्षा विधि को दो श्रेणियों में समूहित करें -
Check-in tests (checkintest)- नया कोड सबमिट करने से पहले ये परीक्षण चलाए जाने चाहिए। वे आम तौर पर तेज होना चाहिए और बस सुनिश्चित करें कि कोई बुनियादी कार्यक्षमता टूटी नहीं है।
Functional tests (functest) - इन परीक्षणों में आपके सॉफ़्टवेयर की सभी कार्यक्षमताओं को शामिल किया जाना चाहिए और दिन में कम से कम एक बार चलाया जाना चाहिए, हालांकि आदर्श रूप से आप उन्हें लगातार चलाना चाहते हैं।
नाम से जावा वर्ग फ़ाइल बनाएँ GroupTestExample.java में C:\>TestNG_WORKSPACE।
import org.testng.Assert;
import org.testng.annotations.Test;
public class GroupTestExample {
String message = ".com";
MessageUtil messageUtil = new MessageUtil(message);
@Test(groups = { "functest", "checkintest" })
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
message = ".com";
Assert.assertEquals(message, messageUtil.printMessage());
}
@Test(groups = { "checkintest" })
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "tutorialspoint" + ".com";
Assert.assertEquals(message, messageUtil.salutationMessage());
}
@Test(groups = { "functest" })
public void testingExitMessage() {
System.out.println("Inside testExitMessage()");
message = "www." + "tutorialspoint"+".com";
Assert.assertEquals(message, messageUtil.exitMessage());
}
}
Testng.xml बनाएँ
में testng.xml बनाएँ C:\> TestNG_WORKSPACE, परीक्षण मामले को निष्पादित करने के लिए। यहां, हम केवल उन्हीं परीक्षणों को निष्पादित कर रहे हैं, जो समूह के लिए कार्य करते हैं ।
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Suite1">
<test name = "test1">
<groups>
<run>
<include name = "functest" />
</run>
</groups>
<classes>
<class name = "GroupTestExample" />
</classes>
</test>
</suite>
मैसेज यूटिल का संकलन करें, टेस्ट केस क्लासेस जोवैक का उपयोग करके।
C:\TestNG_WORKSPACE>javac MessageUtil.java GroupTestExample.java
अब, testng.xml चलाएं, जो केवल विधि testPrintMessage () चलाएगा, क्योंकि यह समूह के कार्य के अंतर्गत आता है ।
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
आउटपुट सत्यापित करें। केवल विधि testPrintMessage () निष्पादित की गई है।
Inside testPrintMessage()
.com
Inside testExitMessage()
www..com
===============================================
Suite1
Total tests run: 2, Failures: 1, Skips: 0
===============================================
समूह का समूह
समूह अन्य समूहों को भी शामिल कर सकते हैं। इन समूहों को कहा जाता हैMetaGroups। उदाहरण के लिए, यदि आप एक समूह निर्धारित कर सकते हैं सब कि शामिल checkintest और functest । आइए हमारी testng.xml फ़ाइल को निम्नानुसार संशोधित करें -
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Suite1">
<test name = "test1">
<groups>
<define name = "all">
<include name = "functest"/>
<include name = "checkintest"/>
</define>
<run>
<include name = "all"/>
</run>
</groups>
<classes>
<class name = "GroupTestExample" />
</classes>
</test>
</suite>
उपरोक्त testng.xml को निष्पादित करने से तीनों परीक्षण निष्पादित होंगे और आपको निम्नलिखित परिणाम देंगे -
Inside testPrintMessage()
.com
Inside testSalutationMessage()
tutorialspoint.com
Inside testExitMessage()
www.tutorialspoint.com
===============================================
Suite1
Total tests run: 3, Failures: 0, Skips: 0
===============================================
बहिष्करण समूह
आप नीचे दिखाए गए अनुसार <बहिष्कृत> टैग का उपयोग करके किसी समूह को अनदेखा कर सकते हैं -
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Suite1">
<test name = "test1">
<groups>
<define name = "all">
<exclude name = "functest"/>
<include name = "checkintest"/>
</define>
<run>
<include name = "all"/>
</run>
</groups>
<classes>
<class name = "GroupTestExample" />
</classes>
</test>
</suite>