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()
Accordingtothe
excludeelementisonlyapplicabletothefollowingelements:
package-Thepackagedescriptionwithinpackageslist.
methods-Thelistofmethodstoinclude/excludefromthistest.
run-Thesubtagofgroupsusedtodefinewhichgroupsshouldberun.
Theelements
cl***and
classcannotbedirectlyexcluded;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>
相关文章推荐
- Number Sequence
- Do You Have Any Question for me
- 115. Distinct Subsequences (String; DP)
- Android UI的优化
- UIButton 的实现原理
- Android merge优化UI
- 理解UIImage 拉伸图片 resizableImageWithCapInsets
- UITextField,常见属性的罗列和用法
- 控制器:UITabBarController
- Qt Quick 图像处理实例之美图秀秀(附源码下载)
- 在android的spinner中,实现取VALUE值和TEXT值
- ueditor编辑器配置及使用介绍
- UI基础之 -------- 轮播图 UIScrollew UIPageControll NSTime
- String,StringBuffer和StringBuilder的区别
- HashMap 排序,按照 value,找出字符出现次数最多的
- LeetCode Unique Paths (简单DP)
- 更改 状态栏(UIStatusBar)的颜色
- UICollectionViewController简单操作(2)
- Java 工程结构管理 Build Path
- HDU 1711 Number Sequence (kmp)