testng
TestNG समूह
खोज…
वाक्य - विन्यास
- @ टेस्ट (समूह = {"group1", "group.regression"}, dependOnGroups = {"group2", "group3"})
TestNG समूह कॉन्फ़िगरेशन और मूल उदाहरण
समूह को Suite
और / या Test
तत्व के तहत कॉन्फ़िगर किया जा सकता है testng.xml
। tesng.xml
में शामिल किए गए सभी समूहों को निष्पादन के लिए विचार किया जाएगा, एक को छोड़कर नजरअंदाज कर दिया जाएगा। यदि @Test
पद्धति में कई समूह हैं और उन समूहों से यदि किसी एकल समूह को testng.xml
में बाहर रखा गया है, तो @Test
पद्धति नहीं चलेगी।
नीचे समूह चलाने के लिए Test
स्तर पर विशिष्ट testng.xml
कॉन्फ़िगरेशन है:
<suite name="Suite World">
<test name="Test Name">
<groups>
<run>
<include name="functest" />
<exclude name="regtest" />
</run>
</groups>
<classes>
<class name="example.group.GroupTest"/>
</classes>
</test>
</suite>
और यह परीक्षा की कक्षा कैसी होगी:
package example.group;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class GroupTest {
@BeforeClass
public void deSetup(){
//do configuration stuff here
}
@Test(groups = { "functest", "regtest" })
public void testMethod1() {
}
@Test(groups = {"functest", "regtest"} )
public void testMethod2() {
}
@Test(groups = { "functest" })
public void testMethod3() {
}
@AfterClass
public void cleanUp(){
//do resource release and cleanup stuff here
}
}
इस
GroupTest
TestNG
क्लास को चलाने पर केवलtestMethod3()
निष्पादित किया जाएगा।
स्पष्टीकरण:
-
<include name="functest" />
functest
ग्रुप के सभी परीक्षण तरीके रन के लिए योग्य हैं यदि इसे किसी अन्य समूह द्वारा बाहर नहीं किया गया है। -
<exclude name="regtest" />
regtest
समूह की कोई भी परीक्षण विधि चलाने के लिए योग्य नहीं है। -
testMethod1()
औरtestMethod2()
regtest
समूह में हैं, इसलिए वे नहीं चलेंगे। -
testMethod3()
regtest
ग्रुप में है, इसलिए यह चलेगा।
TestNG मेटाग्रुप्स - समूहों के समूह
TestNG समूहों को परिभाषित करने की अनुमति देता है जिसमें अन्य समूह शामिल हो सकते हैं। मेटाग्रुप्स तार्किक रूप से एक या एक से अधिक समूहों को @Test
हैं और उन समूहों से संबंधित @Test
तरीकों का निष्पादन नियंत्रित करते हैं।
नीचे दिए गए उदाहरण में विभिन्न समूह (समूहों) से संबंधित विभिन्न @Test
तरीके हैं। कुछ विशेष स्टैक के लिए विशिष्ट हैं और कुछ प्रतिगमन और स्वीकृति परीक्षण हैं। यहां मेटाग्रुप बनाए जा सकते हैं। चलो कोई भी दो सरल मेटाग्रुप्स चुनें :
-
allstack
- मेंliux.jboss.oracle
औरaix.was.db2
समूह शामिल हैं और उन सभी समूहों में से किसी एक से संबंधित सभी परीक्षण विधियों को एक साथ चलाने में सक्षम बनाता है। -
systemtest
- इसमेंallstack
,regression
औरacceptance
समूह शामिल हैं और उन सभी समूहों में से किसी एक से संबंधित परीक्षण विधियों को एक साथ चलाने में सक्षम बनाता है।
testng.xml कॉन्फ़िगरेशन
<suite name="Groups of Groups">
<test name="MetaGroups Test">
<groups>
<!-- allstack group includes both liux.jboss.oracle and aix.was.db2 groups -->
<define name="allstack">
<include name="liux.jboss.oracle" />
<include name="aix.was.db2" />
</define>
<!-- systemtest group includes all groups allstack, regression and acceptance -->
<define name="systemtest">
<include name="allstack" />
<include name="regression" />
<include name="acceptance" />
</define>
<run>
<include name="systemtest" />
</run>
</groups>
<classes>
<class name="example.group.MetaGroupsTest" />
</classes>
</test>
</suite>
मेटाग्रुप्सटेस्ट क्लास
package example.group;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class MetaGroupsTest {
@BeforeMethod
public void beforeMethod(){
//before method stuffs - setup
}
@Test(groups = { "liux.jboss.oracle", "acceptance" })
public void testOnLinuxJbossOracleStack() {
//your test logic goes here
}
@Test(groups = {"aix.was.db2", "regression"} )
public void testOnAixWasDb2Stack() {
//your test logic goes here
}
@Test(groups = "acceptance")
public void testAcceptance() {
//your test logic goes here
}
@Test(groups = "regression")
public void testRegression(){
//your test logic goes here
}
@AfterMethod
public void afterMthod(){
//after method stuffs - cleanup
}
}