引言
本文介绍@BeforeSuite和@AfterSuite注解
@BeforeSuite 在test suite中的所有test运行之前运行,只运行一次;
@AfterSuite 在test suite中的所有test运行之后运行,只运行一次。
正文
一些场景中,需要把通用的一些功能抽取出来,封装成为一个基类,在基类中应用@BeforeSuite和@AfterSuite注解。
1、创建测试基类BaseTestSuite.java
public class BaseTestSuite {
@BeforeSuite
public void beforeSuite(){
System.out.println("这是beforeSuite语句");
}
@AfterSuite
public void afterSuite(){
System.out.println("这是afterSuite语句");
}
@BeforeClass
public void beforeClass(){
System.out.println("BaseTestSuite类中的@BeforeClass");
}
@AfterClass
public void afterClass(){
System.out.println("BaseTestSuite类中的@AfterClass");
}
}
2、测试类继承基类
TestNGClass1.java和TestNGClass2.java继承BaseTestSuite.java
TestNGClass1.java ↓↓ TestNGClass2.java ↓↓
public class TestNGClass1 extends BaseTestSuite{
@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类中的第二个测试方法------------->>>>>>");
}
}
public class TestNGClass2 extends BaseTestSuite{
@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类中的第二个测试方法------------->>>>>>");
}
}
需要继承带有@BeforeSuite和@AfterSuite的类。
3、执行xml文件
执行结果如下:
三人行,必有我师焉。