package com.testng;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterGroups;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class testngannotationsdemo {
@Test(groups={"A組"})
public void Case1(){
System.out.println("Test:Case1被執行了!!");
}
@Test(groups={"A組"})
public void Case2(){
System.out.println("Test:Case2被執行了!!");
}
@Test
public void Case3(){
System.out.println("Test:Case3被執行了!!");
}
@BeforeMethod
public void beforemethod(){
System.out.println("BeforeMethod:在每個測試(@Test)運行之前執行");
}
@AfterMethod
public void aftermethod(){
System.out.println("AfterMethod:在每個測試(@Test)結束後執行");
}
@BeforeClass
public void BeforeClass(){
System.out.println("BeforeClass:在執行第一個測試前執行");
}
@AfterClass
public void AfterClass(){
System.out.println("AfterClass:在最後一個測試執行結束後執行");
}
@BeforeTest
public void beforetest(){
System.out.println("BeforeTest:在測試類中的測試開始執行前執行");
}
@AfterTest
public void aftertest(){
System.out.println("AfterTest:在測試類中的測試結束後執行");
}
@BeforeSuite
public void beforesuite(){
System.out.println("BeforeSuite:在執行測試集合前執行");
}
@AfterSuite
public void aftersuite(){
System.out.println("AferSuite:在執行測試集合前執行");
}
@BeforeGroups(groups={"A組"})
public void beforegroups(){
System.out.println("BeforeGroups:在分組(A組)用例任意一個用例運行前執行");
}
@AfterGroups(groups={"A組"})
public void aftergroups(){
System.out.println("AfterGroups:在分組(A組)所有用例運行結束後執行");
}
}
如下執行結果可分析出 TestNG不同註釋在何時執行:
/private/var/folders/c1/wz0lthxd3n9693l0p1t7yw0h0000gn/T/testng-eclipse-1188532939/testng-customsuite.xml
BeforeSuite:在執行測試集合前執行
BeforeTest:在測試類中的測試開始執行前執行
BeforeClass:在執行第一個測試前執行
BeforeGroups:在分組(A組)用例任意一個用例運行前執行
BeforeMethod:在每個測試(@Test)運行之前執行
Test:Case1被執行了!!
AfterMethod:在每個測試(@Test)結束後執行
BeforeMethod:在每個測試(@Test)運行之前執行
Test:Case2被執行了!!
AfterMethod:在每個測試(@Test)結束後執行
AfterGroups:在分組(A組)所有用例運行結束後執行
BeforeMethod:在每個測試(@Test)運行之前執行
Test:Case3被執行了!!
AfterMethod:在每個測試(@Test)結束後執行
AfterClass:在最後一個測試執行結束後執行
AfterTest:在測試類中的測試結束後執行
PASSED: Case1
PASSED: Case2
PASSED: Case3
===============================================
Default test
Tests run: 3, Failures: 0, Skips: 0
===============================================
AferSuite:在執行測試集合前執行
===============================================
Default suite
Total tests run: 3, Failures: 0, Skips: 0
===============================================