天天看點

TestNG - Custom Reporter:IReport接口,自定義報告

import java.util.List;
import java.util.Map;

import org.testng.IReporter;
import org.testng.ISuite;
import org.testng.ISuiteResult;
import org.testng.ITestContext;
import org.testng.xml.XmlSuite;

public class CustomReporter implements IReporter{
   @Override
   public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites,
      String outputDirectory) {
      
  //Iterating over each suite included in the test
  for (ISuite suite : suites) {
        
     //Following code gets the suite name
     String suiteName = suite.getName();
        
     //Getting the results for the said suite
     Map<String, ISuiteResult> suiteResults = suite.getResults();
     for (ISuiteResult sr : suiteResults.values()) {
        ITestContext tc = sr.getTestContext();
        System.out.println("Passed tests for suite '" + suiteName +
           "' is:" + tc.getPassedTests().getAllResults().size());
        System.out.println("Failed tests for suite '" + suiteName +
           "' is:" + tc.getFailedTests().getAllResults().size());
        System.out.println("Skipped tests for suite '" + suiteName +
           "' is:" + tc.getSkippedTests().getAllResults().size());
     }
  }
           

}

}

然後再對應的類上面,添加監聽,或者在xml檔案中加入監聽。

@Listeners(emailMessage.class)
public class TestCase {
}

           

或者:

<listeners>
        <listener class-name="org.uncommons.reportng.HTMLReporter"/>
        <listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>
        <listener class-name="Test.emailMessage"/>
    </listeners>
           
TestNG - Custom Reporter:IReport接口,自定義報告

如果還想看一下更詳細的,也可以參考一下飛哥的這篇文章:

TestNg的IReporter接口的使用