Friday, August 5, 2016

ExtentReporterNG

package com.mridul.framework.selenium.reports;  
 import com.relevantcodes.extentreports.ExtentReports;  
 import com.relevantcodes.extentreports.ExtentTest;  
 import com.relevantcodes.extentreports.LogStatus;  
 import org.testng.*;  
 import org.testng.xml.XmlSuite;  
 import java.io.File;  
 import java.util.Calendar;  
 import java.util.Date;  
 import java.util.List;  
 import java.util.Map;  
 /**  
  * Created by Mridul on 3/16/2016.  
  */  
   public class ExtentReporterNG implements IReporter {  
     private ExtentReports extent;  
     @Override  
     public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {  
       extent = new ExtentReports(outputDirectory + File.separator + "ExtentReportTestNG.html", false);  
       for (ISuite suite : suites) {  
         Map<String, ISuiteResult> result = suite.getResults();  
         for (ISuiteResult r : result.values()) {  
           ITestContext context = r.getTestContext();  
           buildTestNodes(context.getPassedTests(), LogStatus.PASS);  
           buildTestNodes(context.getFailedTests(), LogStatus.FAIL);  
           buildTestNodes(context.getSkippedTests(), LogStatus.SKIP);  
         }  
       }  
       extent.flush();  
       extent.close();  
     }  
     private void buildTestNodes(IResultMap tests, LogStatus status) {  
       ExtentTest test;  
       if (tests.size() > 0) {  
         for (ITestResult result : tests.getAllResults()) {  
           test = extent.startTest(result.getMethod().getMethodName());  
           test.getTest().setStartedTime(getTime(result.getStartMillis()));  
           test.getTest().setEndedTime(getTime(result.getEndMillis()));  
           for (String group : result.getMethod().getGroups())  
             test.assignCategory(group);  
           String message = "Test " + status.toString().toLowerCase() + "ed";  
           if (result.getThrowable() != null)  
             message = result.getThrowable().getMessage();  
           test.log(status, message);  
           extent.endTest(test);  
         }  
       }  
     }  
     private Date getTime(long millis) {  
       Calendar calendar = Calendar.getInstance();  
       calendar.setTimeInMillis(millis);  
       return calendar.getTime();  
     }  
 }  

1 comment: