- 監聽器 實現接口 org.testng.ITestListener ,並且會在測試開始、通過、失敗等時刻實時通知
- 報告器 實現接口 org.testng.IReporter ,並且當整個測試運行完畢之后才會通知。IReporter 接受一個對象列表,這些對象描述整個測試運行的情況
例如,如果你想要生成一個PDF報告,那么就不需要實時通知,所以用 IReporter。如果需要寫一個實時報告,例如用在GUI上,還要在每次測試時(下面會有例子和解釋)有進度條或者文本報告顯示點 ("."),那么 ITestListener 是你最好的選擇。但這兩種方式,都只能支持testng命令行運行時添加-listener命令
下面以org.testng.ITestListener舉例:
public class DotTestListener extends TestListenerAdapter { private int m_count = 0; @Override public void onTestFailure(ITestResult tr) { log("F"); } @Override public void onTestSkipped(ITestResult tr) { log("S"); } @Override public void onTestSuccess(ITestResult tr) { log("."); } private void log(String string) { System.out.print(string); if (m_count++ % 40 == 0) { System.out.println(""); } } }
使用的時候java org.testng.TestNG -listener com.test.DotTestListener testng.xml
這樣就能在每個測試函數運行完后對測試結果進行更改。