引言
如何一次运行多个测试类,为了解决这个问题,引入了TestSuite测试套件的概念。
不同的测试类可以组装成一个具备测试相关功能的套件,这个套件就叫做TestSuite。比如TestSuite有测试购物基本流程的测试套件,有测试促销的套件,有具备冒烟功能的套件或者具备回归功能的测试套件。
至于如何一次运行多个测试类,如何运行TestSuite,请继续浏览下面正文。
正文
示例中的项目结构
1、分别创建两个测试类,TestNGClass1.java 和 TestNGClass2.java。
TestNGClass1.java ↓
public class TestNGClass1 {
@BeforeClass
public void setUp(){
System.out.println("beforeClass——>>>>>>来自TestNGClass1类");
}
@AfterClass
public void tearDown(){
System.out.println("afterClass——>>>>>>来自TestNGClass1类");
}
@BeforeMethod
public void beforeMethod() {
System.out.println("beforeMethod——>>>>>>来自TestNGClass1类>>>>beforeMethod");
}
@AfterMethod
public void afterMethod() {
System.out.println("afterMethod——>>>>>>来自TestNGClass1类>>>>afterMethod");
}
@Test
public void testAdd(){
System.out.println("这是TestNGClass1类中的第一个测试方法------------->>>>>>");
}
@Test
public void testMethod(){
System.out.println("这是TestNGClass1类中的第二个测试方法------------->>>>>>");
}
}
TestNGClass2.java ↓
public class TestNGClass2 {
@BeforeClass
public void setUp(){
System.out.println("beforeClass——>>>>>>来自TestNGClass2类");
}
@AfterClass
public void tearDown(){
System.out.println("afterClass——>>>>>>来自TestNGClass2类");
}
@BeforeMethod
public void beforeMethod() {
System.out.println("beforeMethod——>>>>>>来自TestNGClass2类>>>>beforeMethod");
}
@AfterMethod
public void afterMethod() {
System.out.println("afterMethod——>>>>>>来自TestNGClass2类>>>>afterMethod");
}
@Test
public void testAdd(){
System.out.println("这是TestNGClass2类中的第一个测试方法------------->>>>>>");
}
@Test
public void testMethod(){
System.out.println("这是TestNGClass2类中的第二个测试方法------------->>>>>>");
}
}
2、创建xml文件
之前的执行都是单个类,如何一次运行多个测试类。
在项目根目录testng下,编辑xml文件,testsuitedemo.xml,xml文件名自定义。内容如下:
<suite name="TestSuite Demo"> <test name="TestSuite Demo Test"> <classes> <class name="testng.TestNGClass1"></class> <class name="testng.TestNGClass2"></class> </classes> </test> </suite>
xml通过标签进行相应的配置。<suite>----<test>----<classes>----<class>,<class>属性name的值是“包名+待执行测试类名”。
3、执行测试,通过testsuitedemo.xml执行
三人行,必有我师焉。欢迎交流。