testng入門教程3用TestNG執行case的順序


本教程介紹了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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM