1.基本註解
註解 | 描述 |
---|---|
@BeforeSuite | 註解的方法將只運行一次,在該套件所有測試運行前被運行。 |
@AfterSuite | 註解的方法將只運行一次,在該套件所有測試運行後備運行。 |
@BeforeClass | 註解的方法將只運行一次,先行先試在當前類中的方法調用。 |
@AfterClass | 註解的方法將只運行一次後已經運行在當前類中的所有測試方法。 |
@BeforeTest | 註解的方法將被運行之前的任何測試方法屬於內部類的 <test> 標籤的運行。 |
@AfterTest | 註解的方法將被運行後,所有的測試方法,屬於內部類的<test> 標籤的運行。 |
@BeforeGroups | 組的列表,這種配置方法將之前運行。此方法是保證在運行屬於任何這些組第一個測試方法,該方法被調用。 |
@AfterGroups | 組的名單,這種配置方法後,將運行。此方法是保證運行後不久,最後的測試方法,該方法屬於任何這些組被調用。 |
@BeforeMethod | 註解的方法將每個測試方法之前運行。 |
@AfterMethod | 被註釋的方法將被運行後,每個測試方法。 |
@DataProvider | 標誌着一個方法,提供數據的一個測試方法。註解的方法必須返回一個Object[] [],其中每個對象[]的測試方法的參數列表中可以分配。該@Test 方法,希望從這個DataProvider的接收數據,需要使用一個dataProvider名稱等於這個註解的名字。 |
@Factory | 作爲一個工廠,返回TestNG的測試類的對象將被用於標記的方法。該方法必須返回Object[]。 |
@Listeners | 定義一個測試類的監聽器。 |
@Parameters | 介紹如何將參數傳遞給@Test方法。 |
@Test | 標記一個類或方法作爲測試的一部分。 |
2.知道了每個註釋的作用,編寫第一個例子,具體代碼如下:
import org.testng.annotations.*;
/**
* Created by Administrator on 2015/3/24.
*/
public class TestNGDemo {
@Test
public void testCase1() {
System.out.println("in test case 1");
}
@Test
public void testCase2() {
System.out.println("in test case 2");
}
@BeforeMethod
public void beforeMethod() {
System.out.println("in beforeMethod");
}
@AfterMethod
public void afterMethod() {
System.out.println("in afterMethod");
}
@BeforeClass
public void beforeClass() {
System.out.println("in beforeClass");
}
@AfterClass
public void afterClass() {
System.out.println("in afterClass");
}
@BeforeTest
public void beforeTest() {
System.out.println("in beforeTest");
}
@AfterTest
public void afterTest() {
System.out.println("in afterTest");
}
@BeforeSuite
public void beforeSuite() {
System.out.println("in beforeSuite");
}
@AfterSuite
public void afterSuite() {
System.out.println("in afterSuite");
}
}
執行結果:
in beforeSuite
in beforeTest
in beforeClass
in beforeMethod
in test case 1
in afterMethod
in beforeMethod
in test case 2
in afterMethod
in afterClass
in afterTest
in afterSuite
從上面的輸出,TestNG是執行過程如下:
* 首先所有@BeforeSuite方法只執行一次。
* 最後@AfterSuite的方法只執行一次。
* 即使方法 @BeforeTest, @BeforeClass, @AfterClass和@AfterTest方法只執行一次。
* @BeforeMethod 執行每個測試用例之前執行。
* @AfterMethod方法執行每個測試用例之後執行