TestNG是通過 Listeners 或者 Reporters 生成測試報告。
- Listeners,即 org.testng.ITestListener 的實現,能夠在測試執行過程中發出各種測試結果的事件;
- Reporters,即 org.testng.IReporter 的實現,能夠在所有的測試套件執行完畢后發出測試結果的事件,其中包括多個描述測試結果的對象。
1. ITestListener---------------
ITestListener 是所有監聽器中最常用的一個,也是最重要的一個。該接口的繼承關系如下圖所示:
這里有個TestListenerAdapter 實現類,該類以空方法(即未實際實現)實現了 ITestListener 接口的全部方法。
編寫ITestListener接口的實現時,為了避免實現不必要的接口方法,我們往往只要擴展TestListenerAdapter類即可。
事實上,除了JUnitXMLReporter之外,其他幾個***Reporter都是擴展自TestListenerAdapter類。
而 JUnitXMLReporter 就是一個JUnit的XML格式的報告生成器。
ITestListener 接口中定義的方法如下:
2.IReporter-------------------
IReporter 接口也是繼承自 ITestNGListener 接口,用於生成報表。該接口中只定義了一個方法:
void generateReport(Java.util.List<XmlSuite> xmlSuites, java.util.List<ISuite> suites, java.lang.String outputDirectory);
該方法可以在指定目錄下為指定的測試套件生成報表。
該方法在TestNG執行完所有的測試套件后被調用,方法中的參數包含所有的測試結果。