Java接口自动化之TestNG单元测试框架(二)
上一篇Java接口自动化系列文章:Java接口自动化之TestNG单元测试框架(一),主要TestNG的简介、@Test注解及其属性。
以下主要介绍testng.xml配置文件控制测试用例的运行。
之前的文章,我们是直接运行当前类下的用例,在正常项目中,我们一般会有多个模块,每个模块下又有多个用例,那么如果只是想运行某个包或类下的用例,如何控制用例运行呢,此时,testng.xml配置文件就派上用场了。
在执行测试用例的时候,我们可以从包、类、方法(测试用例)三个维度划分,即执行特定包下的用例、执行特定类下的用例、执行指定的方法(测试用例)。
指定特定包即执行特定包下的所有测试用例。
①新建两个包package1、package2,每个包下分别新建类TestDemo1、TestDemo2,结构如下:
②TestDemo1类内容如下:
package package1;
import org.testng.annotations.Test;
@Test
public class TestDemo1 {
public void testDemo1() {
System.out.println("这是package1下的测试用例");
}
}
③TestDemo2类内容如下:
package package2;
import org.testng.annotations.Test;
@Test
public class TestDemo2 {
public void testDemo2() {
System.out.println("这是package2下的测试用例");
}
}
④在maven项目的 resources 目录下新建文件testng.xml,内容结构如下
"1.0" encoding="UTF-8"?>
"https://testng.org/testng-1.0.dtd" >
"SuiteTest">
<test name="test1" >
"package1">
test>
<test name="test2">
"package2">
test>
标签说明:
: 定义一个套件,一个xml文件只能有一个 ,name 用来定义测试套件的名称。 : 表示定义了一个测试,name 定义测试的名称。 : 表示定义包的测试类。 : 表示定义特定的包,执行包下的测试用例。
⑤右键运行testng.xml,执行结果如下:
这是package1下的测试用例
这是package2下的测试用例
===============================================
SuiteTest
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
===============================================
Process finished with exit code 0
从上面结果可以看出,指定包下的测试用例都已执行。
指定特定类即执行特定类下的所有测试用例。
①新建两个包package1、package2,每个包下分别新建类TestDemo1、TestDemo2(上个例子创建过的无需重新创建)。
②testng.xml内容修改如下:
"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>
标签说明:
: 定义一个套件,一个xml文件只能有一个 ,name 用来定义测试套件的名称。 : 表示定义了一个测试,name 定义测试的名称。 : 表示定义一组测试类。 : 表示定义某个测试类,name 指定要运行的测试类。
③右键运行testng.xml,执行结果如下:
这是package1下的测试用例
这是package2下的测试用例
===============================================
SuiteTest
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
===============================================
Process finished with exit code 0
从上面结果可以看出,指定类下的测试用例都已执行。
指定特定方法即执行特定的测试用例。
①在package1下新建类TestDemo3,内容如下:
package package1;
import org.testng.annotations.Test;
@Test
public class TestDemo3 {
public void testDemo3(){
System.out.println("这是package1下的testDemo3");
}
}
②testng.xml内容修改如下:
"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>
标签说明:
: 定义一个套件,一个xml文件只能有一个 ,name 用来定义测试套件的名称。 : 表示定义了一个测试,name 定义测试的名称。 : 表示定义一组测试类。 : 表示定义某个测试类,name 指定要运行的测试类。 :表示定义一组方法。 :表示包含哪个方法,name指定要运行的测试用例。
③右键运行testng.xml,执行结果如下:
这是package1下的测试用例
这是package2下的测试用例
===============================================
SuiteTest
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
===============================================
Process finished with exit code 0
从上面结果可以看出, 指定的测试用例都被执行,未被指定的用例,如TestDemo3类下的用例未执行。
(完)
喜欢记得星标置顶,让我们一起守护成长