您的位置:首页 > 产品设计 > UI/UE

TestNG – Run multiple test classes (suite test)

2015-10-30 09:37 609 查看

Inthistutorial,wewillshowyouhowtorunmultipleTestNGtestcases(classes)together,akasuitetest.

1.TestClasses

Reviewfollowingthreetestclasses.

TestConfig.java
packagecom.mkyong.testng.examples.suite;

importorg.testng.annotations.AfterSuite;
importorg.testng.annotations.AfterTest;
importorg.testng.annotations.BeforeSuite;
importorg.testng.annotations.BeforeTest;

//showtheuseof@BeforeSuiteand@BeforeTest
publicclassTestConfig{

@BeforeSuite
publicvoidtestBeforeSuite(){
System.out.println("testBeforeSuite()");
}

@AfterSuite
publicvoidtestAfterSuite(){
System.out.println("testAfterSuite()");
}

@BeforeTest
publicvoidtestBeforeTest(){
System.out.println("testBeforeTest()");
}

@AfterTest
publicvoidtestAfterTest(){
System.out.println("testAfterTest()");
}

}

TestDatabase.java
packagecom.mkyong.testng.examples.suite;

importorg.testng.annotations.Test;

publicclassTestDatabase{

@Test(groups="db")
publicvoidtestConnectOracle(){
System.out.println("testConnectOracle()");
}

@Test(groups="db")
publicvoidtestConnectMsSQL(){
System.out.println("testConnectMsSQL");
}

@Test(groups="db-nosql")
publicvoidtestConnectMongoDB(){
System.out.println("testConnectMongoDB");
}

@Test(groups={"db","brokenTests"})
publicvoidtestConnectMySQL(){
System.out.println("testConnectMySQL");
}

}

TestOrder.java
packagecom.mkyong.testng.examples.suite;

importorg.testng.annotations.Test;

publicclassTestOrder{

@Test(groups={"orderBo","save"})
publicvoidtestMakeOrder(){
System.out.println("testMakeOrder");
}

@Test(groups={"orderBo","save"})
publicvoidtestMakeEmptyOrder(){
System.out.println("testMakeEmptyOrder");
}

@Test(groups="orderBo")
publicvoidtestUpdateOrder(){
System.out.println("testUpdateOrder");
}

@Test(groups="orderBo")
publicvoidtestFindOrder(){
System.out.println("testFindOrder");
}

}


2.Testng.xml

Torunabovetestclasses,createaXMLfile–
testng.xml
(canbeanyfilename)file,anddefinedetaillikethis:

testng.xml
<!DOCTYPEsuiteSYSTEM"http://testng.org/testng-1.0.dtd">

<suitename="TestAll">

<testname="order">
<classes>
<classname="com.mkyong.testng.examples.suite.TestConfig"/>
<classname="com.mkyong.testng.examples.suite.TestOrder"/>
</classes>
</test>

<testname="database">
<classes>
<classname="com.mkyong.testng.examples.suite.TestConfig"/>
<classname="com.mkyong.testng.examples.suite.TestDatabase"/>
</classes>
</test>

</suite>

Output

[TestNG]Running:
C:\mkyong_projects\TestNG\src\test\resources\testng-all.xml

testBeforeSuite()

testBeforeTest()
testFindOrder
testMakeEmptyOrder
testMakeOrder
testUpdateOrder
testAfterTest()

testBeforeTest()
testConnectMongoDB
testConnectMsSQL
testConnectMySQL
testConnectOracle()
testAfterTest()

testAfterSuite()


3.OtherExamples

Herearesomecommonuseexamples.

3.1Specifypackagenamesinsteadofclassnames:

testng.xml
<!DOCTYPEsuiteSYSTEM"http://testng.org/testng-1.0.dtd">

<suitename="TestAll">

<testname="order">
<packages>
<packagename="com.mkyong.testng.examples.suite.*"/>
</packages>
</test>

</suite>

3.2Specifymethodstoincludeorexclude:

testng.xml
<!DOCTYPEsuiteSYSTEM"http://testng.org/testng-1.0.dtd">

<suitename="TestAll">

<testname="order">
<classes>
<classname="com.mkyong.testng.examples.suite.TestConfig"/>
<classname="com.mkyong.testng.examples.suite.TestOrder">
<methods>
<includename="testMakeOrder"/>
<includename="testUpdateOrder"/>
<!--
<excludename="testMakeOrder"/>
-->
</methods>
</class>
</classes>
</test>

</suite>

Output

[TestNG]Running:
C:\mkyong_projects\TestNG\src\test\resources\testng.xml

testBeforeSuite()
testBeforeTest()
testMakeOrder
testUpdateOrder
testAfterTest()
testAfterSuite()

3.3Specifygroupstoincludeorexclude:

testng.xml
<!DOCTYPEsuiteSYSTEM"http://testng.org/testng-1.0.dtd">

<suitename="TestAll">

<testname="database">
<groups>
<run>
<excludename="brokenTests"/>
<includename="db"/>
</run>
</groups>

<classes>
<classname="com.mkyong.testng.examples.suite.TestDatabase"/>
</classes>
</test>

</suite>

Output

[TestNG]Running:
C:\mkyong_projects\TestNG\src\test\resources\testng.xml

testConnectMsSQL
testConnectOracle()



AccordingtotheTestNGdtd,the
exclude
elementisonlyapplicabletothefollowingelements:

package-Thepackagedescriptionwithinpackageslist.

methods-Thelistofmethodstoinclude/excludefromthistest.

run-Thesubtagofgroupsusedtodefinewhichgroupsshouldberun.

Theelements
cl***
and
class
cannotbedirectlyexcluded;however,youcanexcludecl***throughgroups:

@Test(groups={"ClassTest1"})
publicclassTest1{

publicvoidtestMethod1(){
}

publicvoidtestMethod2(){
}

}

Thenyouwilldefinethetestng.xml:

<suite>
<test>
<groups>
<run>
<excludename="ClassTest1"/>
</run>
</groups>
<cl***>
<classname="Test1">
</cl***>
</test>
</suite>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: