位置:首頁 > Java技術 > TestNG教學 > TestNG套件測試

TestNG套件測試

TestNG套件測試

測試套件的測試是為了測試軟件程序的行為或一係列行為的情況下,是一個集合。在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 內容如下:

Writing TestsWriting Tests