測試套件的測試是為了測試軟件程序的行為或一係列行為的情況下,是一個集合。在TestNG,我們不能定義一套測試源代碼,但它代表的套件是一個XML文件執行特征。這也允許靈活的配置要運行的測試。套件可以包含一個或多個測試和被定義由<suite>標簽。
testng.xml中有<suite>根標簽。它描述了一個測試套件,這反過來又是由多個<test>區段組成。
下表列出了所有的<suite>可接受合法屬性。
屬性 | 描述 |
---|---|
name | 此套件的名稱。這是一個強製性的屬性。 |
verbose | 這個運行級彆或冗長。 |
parallel | 由TestNG 運行不同的線程來運行此套件。 |
thread-count | 使用的線程數,如果啟用並行模式(忽略其他方式)。 |
annotations | 在測試中使用注釋的類型。 |
time-out | 默認的超時時間,將用於本次測試中發現的所有測試方法。 |
在本章中,我們會告訴你一個例子,有兩個Test1 & Test2測試類一起運行測試套件。
創建一個Java類進行測試 MessageUtil.java 在 C:\ > JUNIT_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 "Hi!" to the message public String salutationMessage() { message = "Hi!" + message; System.out.println(message); return message; } }
創建一個Java類文件名 Test1.java 在C:\ > TestNG_WORKSPACE
import org.testng.Assert; import org.testng.annotations.Test; public class Test1 { String message = "Manisha"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { System.out.println("Inside testPrintMessage()"); Assert.assertEquals(message, messageUtil.printMessage()); } }
創建一個Java類文件名 Test2.java 在C:\ > TestNG_WORKSPACE
import org.testng.Assert; import org.testng.annotations.Test; public class Test2 { String message = "Manisha"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testSalutationMessage() { System.out.println("Inside testSalutationMessage()"); message = "Hi!" + "Manisha"; Assert.assertEquals(message,messageUtil.salutationMessage()); } }
現在,讓我們編輯寫入testng.xml 在C:\ > TestNG_WORKSPACE ,將包含<suite>標簽如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="Suite1"> <test name="exampletest1"> <classes> <class name="Test1" /> </classes> </test> <test name="exampletest2"> <classes> <class name="Test2" /> </classes> </test> </suite>
Suite1 包括 exampletest1 和 exampletest2.
所有Java類編譯使用javac。
C:\TestNG_WORKSPACE>javac MessageUtil.java Test1.java Test2.java
現在運行 testng.xml,將運行提供的測試用例類中定義的測試用例。
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
驗證輸出。
Inside testPrintMessage() Manisha Inside testSalutationMessage() Hi!Manisha =============================================== Suite1 Total tests run: 2, Failures: 0, Skips: 0 ===============================================
您也可以檢查測試輸出文件夾;下Suite1文件夾中,可以看到兩個HTML創建的exampletest1.html 和 exampletest2.html 內容如下: