Java接口自動(dòng)化之TestNG單元測(cè)試框架(二)
上一篇Java接口自動(dòng)化系列文章:Java接口自動(dòng)化之TestNG單元測(cè)試框架(一),主要TestNG的簡(jiǎn)介、@Test注解及其屬性。
以下主要介紹testng.xml配置文件控制測(cè)試用例的運(yùn)行。
之前的文章,我們是直接運(yùn)行當(dāng)前類下的用例,在正常項(xiàng)目中,我們一般會(huì)有多個(gè)模塊,每個(gè)模塊下又有多個(gè)用例,那么如果只是想運(yùn)行某個(gè)包或類下的用例,如何控制用例運(yùn)行呢,此時(shí),testng.xml配置文件就派上用場(chǎng)了。
在執(zhí)行測(cè)試用例的時(shí)候,我們可以從包、類、方法(測(cè)試用例)三個(gè)維度劃分,即執(zhí)行特定包下的用例、執(zhí)行特定類下的用例、執(zhí)行指定的方法(測(cè)試用例)。
指定特定包即執(zhí)行特定包下的所有測(cè)試用例。
①新建兩個(gè)包package1、package2,每個(gè)包下分別新建類TestDemo1、TestDemo2,結(jié)構(gòu)如下:

②TestDemo1類內(nèi)容如下:
package?package1;
import?org.testng.annotations.Test;
@Test
public?class?TestDemo1?{
????public?void?testDemo1()?{
????????System.out.println("這是package1下的測(cè)試用例");
????}
}
③TestDemo2類內(nèi)容如下:
package?package2;
import?org.testng.annotations.Test;
@Test
public?class?TestDemo2?{
????public?void?testDemo2()?{
????????System.out.println("這是package2下的測(cè)試用例");
????}
}
④在maven項(xiàng)目的 resources 目錄下新建文件testng.xml,內(nèi)容結(jié)構(gòu)如下
"1.0"?encoding="UTF-8"?>
"https://testng.org/testng-1.0.dtd"?>
"SuiteTest">
????<test?name="test1"?>
????????
????????????"package1">
????????
????test>
????<test?name="test2">
????????
????????????"package2">
????????
????test>
標(biāo)簽說明:
: 定義一個(gè)套件,一個(gè)xml文件只能有一個(gè) ,name 用來定義測(cè)試套件的名稱。 : 表示定義了一個(gè)測(cè)試,name 定義測(cè)試的名稱。 : 表示定義包的測(cè)試類。 : 表示定義特定的包,執(zhí)行包下的測(cè)試用例。
⑤右鍵運(yùn)行testng.xml,執(zhí)行結(jié)果如下:
這是package1下的測(cè)試用例
這是package2下的測(cè)試用例
===============================================
SuiteTest
Total?tests?run:?2,?Passes:?2,?Failures:?0,?Skips:?0
===============================================
Process?finished?with?exit?code?0
從上面結(jié)果可以看出,指定包下的測(cè)試用例都已執(zhí)行。
指定特定類即執(zhí)行特定類下的所有測(cè)試用例。
①新建兩個(gè)包package1、package2,每個(gè)包下分別新建類TestDemo1、TestDemo2(上個(gè)例子創(chuàng)建過的無需重新創(chuàng)建)。
②testng.xml內(nèi)容修改如下:
"1.0"?encoding="UTF-8"?>
"https://testng.org/testng-1.0.dtd">
"SuiteTest">
????<test?name="test1">
????????
????????????"package1.TestDemo1">
????????
????test>
????<test?name="test2">
????????
????????????"package2.TestDemo2">
????????
????test>
標(biāo)簽說明:
: 定義一個(gè)套件,一個(gè)xml文件只能有一個(gè) ,name 用來定義測(cè)試套件的名稱。 : 表示定義了一個(gè)測(cè)試,name 定義測(cè)試的名稱。 : 表示定義一組測(cè)試類。 : 表示定義某個(gè)測(cè)試類,name 指定要運(yùn)行的測(cè)試類。
③右鍵運(yùn)行testng.xml,執(zhí)行結(jié)果如下:
這是package1下的測(cè)試用例
這是package2下的測(cè)試用例
===============================================
SuiteTest
Total?tests?run:?2,?Passes:?2,?Failures:?0,?Skips:?0
===============================================
Process?finished?with?exit?code?0
從上面結(jié)果可以看出,指定類下的測(cè)試用例都已執(zhí)行。
指定特定方法即執(zhí)行特定的測(cè)試用例。
①在package1下新建類TestDemo3,內(nèi)容如下:
package?package1;
import?org.testng.annotations.Test;
@Test
public?class?TestDemo3?{
????public?void?testDemo3(){
????????System.out.println("這是package1下的testDemo3");
????}
}
②testng.xml內(nèi)容修改如下:
"1.0"?encoding="UTF-8"?>
"https://testng.org/testng-1.0.dtd">
"SuiteTest">
????<test?name="test1">
????????
????????????"package1.TestDemo1">
????????????????
????????????????????"testDemo1">
????????????????
????????????
????????
????test>
????<test?name="test2">
????????
????????????"package2.TestDemo2">
????????????????
????????????????????"testDemo2">
????????????????
????????????
????????
????test>
標(biāo)簽說明:
: 定義一個(gè)套件,一個(gè)xml文件只能有一個(gè) ,name 用來定義測(cè)試套件的名稱。 : 表示定義了一個(gè)測(cè)試,name 定義測(cè)試的名稱。 : 表示定義一組測(cè)試類。 : 表示定義某個(gè)測(cè)試類,name 指定要運(yùn)行的測(cè)試類。 :表示定義一組方法。 :表示包含哪個(gè)方法,name指定要運(yùn)行的測(cè)試用例。
③右鍵運(yùn)行testng.xml,執(zhí)行結(jié)果如下:
這是package1下的測(cè)試用例
這是package2下的測(cè)試用例
===============================================
SuiteTest
Total?tests?run:?2,?Passes:?2,?Failures:?0,?Skips:?0
===============================================
Process?finished?with?exit?code?0
從上面結(jié)果可以看出, 指定的測(cè)試用例都被執(zhí)行,未被指定的用例,如TestDemo3類下的用例未執(zhí)行。
(完)

喜歡記得星標(biāo)置頂,讓我們一起守護(hù)成長(zhǎng)
