- 監聽器 實現接口 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
這樣就能在每個測試函數運行完后對測試結果進行更改。
