TestNG組測試【轉】

來源:互聯網
上載者:User

標籤:http   io   使用   java   ar   檔案   代碼   sp   amp   

在TestNG中組測試是一個新的創新功能,它不存在於JUnit架構,它允許調度到適當的部分方法和瓶坯複雜的測試方法分組。您不僅可以聲明屬於群體的那些方法,但你也可以指定一組包含其他組。然後,TestNG可調用和要求包括一組特定的群體(或Regex),而排除另一個集合。這給了你最大的靈活性,如何分區測試,如果想運行兩套不同的測試背靠背,不要求重新編譯任何東西。

組指定testng.xml檔案使用<groups>標籤。它可以發現無論是根據<test>或<suite>標籤。組指定<suite>標籤適用於所有的的<test>標籤下方。

現在,讓我們看一個例子,如何組測試。

 

建立一個類
  • 建立一個Java類進行測試為 MessageUtil.java 在 C:\ > TestNG_WORKSPACE

/** This class prints the given message on console.*/public class MessageUtil {    private String message;    // Constructor    // @param message to be printed    public MessageUtil(String message) {        this.message = message;    }    // prints the message    public String printMessage() {        System.out.println(message);return message;    }    // add "tutorialspoint" to the message    public String salutationMessage() {        message = "tutorialspoint" + message;System.out.println(message);return message;    }    // add "www." to the message    public String exitMessage() {message = "www." + message;System.out.println(message);return message;    }}  
建立測試案例類
  • 建立一個Java測試類別為 GroupTestExample.java.

  • 測試類別添加測試方法testPrintMessage()和 testSalutationMessage()。

     

  • 組的測試方法兩個類別為:

    • 檢入登記測試(checkintest):提交新的代碼之前,你應該運行這些測試。他們通常應快,只要確保沒有被打破的準系統。

       

    • 功能測試(functest):這些測試應該涵蓋軟體的所有功能,每天至少運行一次,雖然理想情況下,會希望他們不斷運行。

建立Java類檔案名稱 GroupTestExample.java 在 C:\ > TestNG_WORKSPACE

 

import org.testng.Assert;import org.testng.annotations.Test;public class GroupTestExample {    String message = ".com";    MessageUtil messageUtil = new MessageUtil(message);    @Test(groups = { "functest", "checkintest" })    public void testPrintMessage() {        System.out.println("Inside testPrintMessage()");message = ".com";Assert.assertEquals(message, messageUtil.printMessage());    }    @Test(groups = { "checkintest" })    public void testSalutationMessage() {        System.out.println("Inside testSalutationMessage()");message = "tutorialspoint" + ".com";Assert.assertEquals(message, messageUtil.salutationMessage());    }    @Test(groups = { "functest" })    public void testingExitMessage() {        System.out.println("Inside testExitMessage()");        message = "www." + "tutorialspoint"+".com";Assert.assertEquals(message, messageUtil.exitMessage());    }}  
建立testng.xml

建立一個檔案 testng.xml C:\ > TestNG_WORKSPACE 來執行測試案例,在這裡,我們將只執行這些測試,屬於組functest。

 

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" ><suite name="Suite1">    <test name="test1">        <groups>    <run><include name="functest" />    </run></groups><classes>    <class name="GroupTestExample" /></classes>    </test></suite>  

編譯MessageUtil的測試案例類使用javac。

C:\TestNG_WORKSPACE>javac MessageUtil.java GroupTestExample.java  

現在,運行testng.xml,只啟動並執行方法testPrintMessage(),因為它屬於組functest。

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml  

驗證輸出。只有的方法testPrintMessage()被執行。

 

Inside testPrintMessage().comInside testExitMessage()www..com===============================================Suite1Total tests run: 2, Failures: 1, Skips: 0===============================================  
組中組

組也可以包含其他組。這些組稱為MetaGroups。例如,您可能希望定義一個組中的所有,包括checkintest和functest。讓我們修改testng.xml檔案如下:

 

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" ><suite name="Suite1">   <test name="test1">      <groups>         <define name="all">    <include name="functest"/>    <include name="checkintest"/> </define> <run>    <include name="all"/> </run>    </groups> <classes>      <class name="GroupTestExample" /></classes>   </test></suite>  

執行上述testng.xml將執行所有三個測試會給你下面的結果:

Inside testPrintMessage().comInside testSalutationMessage()tutorialspoint.comInside testExitMessage()www.tutorialspoint.com===============================================Suite1Total tests run: 3, Failures: 0, Skips: 0===============================================  
排斥組

可以忽略一個組使用<exclude>標籤,如所示:

 

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" ><suite name="Suite1">   <test name="test1">      <groups>         <define name="all">    <exclude name="functest"/>    <include name="checkintest"/> </define> <run>    <include name="all"/> </run>    </groups> <classes>      <class name="GroupTestExample" /></classes>   </test></suite>  

TestNG組測試【轉】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.