標籤:http io 使用 java ar 檔案 代碼 sp amp
在TestNG中組測試是一個新的創新功能,它不存在於JUnit架構,它允許調度到適當的部分方法和瓶坯複雜的測試方法分組。您不僅可以聲明屬於群體的那些方法,但你也可以指定一組包含其他組。然後,TestNG可調用和要求包括一組特定的群體(或Regex),而排除另一個集合。這給了你最大的靈活性,如何分區測試,如果想運行兩套不同的測試背靠背,不要求重新編譯任何東西。
組指定testng.xml檔案使用<groups>標籤。它可以發現無論是根據<test>或<suite>標籤。組指定<suite>標籤適用於所有的的<test>標籤下方。
現在,讓我們看一個例子,如何組測試。
建立一個類
/** 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 在 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組測試【轉】