本教程介紹了TestNG中執行程序的方法,這意味着該方法被稱為第一和一個接着。下面是執行程序的TestNG測試API的方法的例子。
創建一個Java類文件名TestngAnnotation.java在C:\>TestNG_WORKSPACE測試注解。
import org.testng.annotations.Test; import org.testng.annotations.BeforeMethod; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeTest; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeSuite; import org.testng.annotations.AfterSuite; public class TestngAnnotation { // test case 1 @Test public void testCase1() { System.out.println("in test case 1"); } // test case 2 @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"); } } 接下來,讓我們創建的文件 testng.xml 在 C:\ > TestNG_WORKSPACE 執行注解。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="Suite1"> <test name="test1"> <classes> <class name="TestngAnnotation"/> </classes> </test> </suite>
編譯使用javac測試用例類。
C:\TestNG_WORKSPACE>javac TestngAnnotation.java
現在運行testng.xml,將運行提供的測試用例類中定義的測試用例。
C:\TestNG_WORKSPACE>java org.testng.TestNG testng.xml
驗證輸出。
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 =============================================== Suite Total tests run: 2, Failures: 0, Skips: 0 ===============================================
見上面的輸出,TestNG是執行過程如下:
-
首先所有beforeSuite()方法只執行一次。
-
最后,afterSuite的()方法只執行一次。
-
即使方法 beforeTest(), beforeClass(), afterClass() 和afterTest() 方法只執行一次。
-
beforeMethod()方法執行每個測試用例,但在此之前執行的測試用例。
-
afterMethod()方法執行每個測試用例,但測試用例執行后。
-
In between beforeMethod() and afterMethod() each test case executes.
使用注釋
傳統的方式來表示JUnit 3中的測試方法是測試自己的名字前綴。標記一個類中的某些方法,具有特殊的意義,這是一個非常有效的方法,但命名不很好的擴展(如果我們想添加更多標簽為不同的框架?),而非缺乏靈活性(如果我們要通過額外的參數測試框架)。
注釋被正式加入到JDK 5中的Java語言和TestNG作出選擇使用注釋注釋測試類。
這里是TestNG的支持列表中的注解:
| 注解 | 描述 |
|---|---|
| @BeforeSuite | 注解的方法將只運行一次,運行所有測試前此套件中。 |
| @AfterSuite | 注解的方法將只運行一次此套件中的所有測試都運行之后。 |
| @BeforeClass | 注解的方法將只運行一次先行先試在當前類中的方法調用。 |
| @AfterClass | 注解的方法將只運行一次后已經運行在當前類中的所有測試方法。 |
| @BeforeTest | 注解的方法將被運行之前的任何測試方法屬於內部類的 <test>標簽的運行。 |
| @AfterTest | 注解的方法將被運行后,所有的測試方法,屬於內部類的<test>標簽的運行。 |
| @BeforeGroups | 組的列表,這種配置方法將之前運行。此方法是保證在運行屬於任何這些組第一個測試方法,該方法被調用。 |
| @AfterGroups | 組的名單,這種配置方法后,將運行。此方法是保證運行后不久,最后的測試方法,該方法屬於任何這些組被調用。 |
| @BeforeMethod | 注解的方法將每個測試方法之前運行。 |
| @AfterMethod | 被注釋的方法將被運行后,每個測試方法。 |
| @DataProvider |
標志着一個方法,提供數據的一個測試方法。注解的方法必須返回一個Object[] [],其中每個對象[]的測試方法的參數列表中可以分配。
該@Test 方法,希望從這個DataProvider的接收數據,需要使用一個dataProvider名稱等於這個注解的名字。 |
| @Factory | 作為一個工廠,返回TestNG的測試類的對象將被用於標記的方法。該方法必須返回Object[]。 |
| @Listeners | 定義一個測試類的監聽器。 |
| @Parameters | 介紹如何將參數傳遞給@Test方法。 |
| @Test | 標記一個類或方法作為測試的一部分。 |
使用注釋的好處
以下是一些使用注釋的好處:
- TestNG的標識的方法關心尋找注解。因此,方法名並不限於任何模式或格式。
- 我們可以通過額外的參數注解。
- 注釋是強類型的,所以編譯器將標記任何錯誤。
- 測試類不再需要任何東西(如測試案例,在JUnit3)擴展。
文章轉載自:易百教程 [http://www.yiibai.com]
本文標題:TestNG執行程序
轉載請保留原文鏈接:http://www.yiibai.com/html/testng/2013/0914296.html
