Extent Reports is a multi-format reporting library for Java Developers which creates an interactive HTML report, an email report, and also provides real-time log information. The ExtentAPI also integrates with the ExtentX server to provide in-depth views of your tests.Extent addresses the reporting issues in TestNG.
Below is the code which can be used to run tests
package code;
import java.io.File;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import com.relevantcodes.extentreports.DisplayOrder;
import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.NetworkMode;
import CONSTANTS;
public class ExtentManager {
public static ExtentReports extent;
protected static final String filePath=System.getProperty("user.dir")+File.separator
+"ExtentReports"+File.separator+"TestReport.html";
private static boolean replaceExisting=true;
protected static final DisplayOrder displayOrder= DisplayOrder.NEWEST_FIRST;
public static ExtentReports getInstance(String EnvironmentToRunOn) {
if (extent == null) {
extent = new ExtentReports(filePath, replaceExisting,displayOrder, NetworkMode.OFFLINE);
extent.loadConfig(new File(CONSTANTS.ExtentConfigPath));
Map<String, String> sysInfo = new HashMap<String, String>();
sysInfo.put("Selenium Version", "2.53.1");
sysInfo.put("Environment", EnvironmentToRunOn);
extent.addSystemInfo(sysInfo);
}
return extent;
}
}
class ExtentReports {
public ExtentReports extent;
public ExtentTest test;
public String getCurrentlyLoggedInUser=System.getProperty("user.name");
@Test
public void InitializeExtentReport(){
//Instantiating the ExtentReports
extent=ExtentManager.getInstance(Environment);
extent.assignProject("Test Extent");
// start x requires MongoDB hence commented to generate reports on the other machines
Logger mongoLogger = Logger.getLogger( "org.mongodb.driver" );
mongoLogger.setLevel(Level.SEVERE);
extent.x("localhost");*/
test=extent.startTest("Test1", ""Application started." );
test.assignAuthor(getCurrentlyLoggedInUser);
test.assignCategory("RegressionTestCases");
}
}
We need to keep in mind that the extent reports must be under @Test annotation of TestNG otherwise it will not generate the reports.
After running the tests we will be able to view report in the specified folder as "TestReport.html"