11package reports ;
22
3- import java .awt .Desktop ;
43import java .io .File ;
5- import java .io .IOException ;
64import java .util .Objects ;
5+ import java .util .Properties ;
76
87import com .aventstack .extentreports .ExtentReports ;
9- import com .aventstack .extentreports .ExtentTest ;
108import com .aventstack .extentreports .reporter .ExtentSparkReporter ;
119import com .aventstack .extentreports .reporter .configuration .Theme ;
1210
11+ import constants .GlobalConstants ;
12+ import logsetup .Log ;
1313import utilities .PropertyFileReader ;
1414
1515public final class ExtentReport {
1616
17+ // Parameters read from extentreports config file
18+ enum ConfigParameters {
19+ THEME ,
20+ REPORT_NAME ,
21+ DOCUMENT_TITLE ,
22+ TIMESTAMP_FORMAT
23+ }
24+
1725 private static ExtentReports extentReport ;
1826
1927 private ExtentReport () {}
@@ -23,26 +31,39 @@ private ExtentReport() {}
2331 * Improvemnt - parameter can be read from a config file
2432 */
2533 public static ExtentReports initReport () {
26- if (Objects .isNull (extentReport )) {
27- String propertyFilePath = System .getProperty ("user.dir" )+"/src/test/resources/Config.properties" ;
28-
34+ Properties extentReportConfig = PropertyFileReader .readFile (GlobalConstants .EXTENTREPORT_CONFIG );
35+ String theme = extentReportConfig .get (ConfigParameters .THEME .name ()).toString ();
36+ String reportName = extentReportConfig .get (ConfigParameters .REPORT_NAME .name ()).toString ();
37+ String documentTitle = extentReportConfig .get (ConfigParameters .DOCUMENT_TITLE .name ()).toString ();
38+ String timeStampFormat = extentReportConfig .get (ConfigParameters .TIMESTAMP_FORMAT .name ()).toString ();
39+
40+ if (Objects .isNull (extentReport )) {
2941 extentReport = new ExtentReports ();
3042 ExtentSparkReporter extentSparkReporter =new ExtentSparkReporter (
31- new File (System . getProperty ( "user.dir" )+ "/ExtentReports/ExtentReports.html" ));
43+ new File (GlobalConstants . EXTENTREPORT_HTML ));
3244
3345 //attach the extentSparkReporter to extendReports object
3446 extentReport .attachReporter (extentSparkReporter );
3547
36- //spark report configurations
37- extentSparkReporter .config ().setTheme (Theme .STANDARD );//DARK for dark theme
38- extentSparkReporter .config ().setReportName ("Demo Test Automation Results" );
39- extentSparkReporter .config ().setDocumentTitle ("Demo Test Automation Results" );
40- extentSparkReporter .config ().setTimeStampFormat ("yyyy/MM/dd hh:mm:ss" );
41-
48+ // SPark report configuration
49+ switch (theme .toLowerCase ()) {
50+ case "standard" :
51+ extentSparkReporter .config ().setTheme (Theme .STANDARD );
52+ break ;
53+ case "dark" :
54+ extentSparkReporter .config ().setTheme (Theme .DARK );
55+ break ;
56+ default :
57+ Log .info ("Invalid theme " +theme +" configured in " +GlobalConstants .EXTENTREPORT_CONFIG +" file. Please enter 'standard' or 'dark' for 'Theme'." );
58+ break ;
59+ }
60+
61+ extentSparkReporter .config ().setReportName (reportName );
62+ extentSparkReporter .config ().setDocumentTitle (documentTitle );
63+ extentSparkReporter .config ().setTimeStampFormat (timeStampFormat );
4264
4365 // setting test and system info from test/resources/Config.properties file
44- extentReport .setSystemInfo ("Application URL" ,
45- PropertyFileReader .readFile (propertyFilePath ).get ("url" ).toString ());
66+ extentReport .setSystemInfo ("Application URL" , PropertyFileReader .readFile (GlobalConstants .CONFIG ).get ("url" ).toString ());
4667 extentReport .setSystemInfo ("Operating System" ,System .getProperty ("os.name" ));
4768 extentReport .setSystemInfo ("User name " ,System .getProperty ("user.name" ));
4869 extentReport .setSystemInfo ("Java version" ,System .getProperty ("java.version" ));
@@ -57,9 +78,4 @@ public static void flushReport() {
5778 extentReport .flush ();
5879 }
5980 }
60-
61- //Method to create test in extend reports
62- public static void getTest (String testName ) {
63- ExtentManager .setExtentTest (extentReport .createTest (testName ));
64- }
6581}
0 commit comments