/
MergedReport.java
54 lines (41 loc) · 1.75 KB
/
MergedReport.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package tech.grasshopper.combiner.report;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import com.aventstack.extentreports.ExtentReports;
import com.aventstack.extentreports.reporter.ExtentSparkReporter;
import lombok.Builder;
import tech.grasshopper.combiner.exception.CombinerException;
import tech.grasshopper.combiner.options.CombinerOptions;
import tech.grasshopper.combiner.options.ConfigType;
@Builder
public class MergedReport {
private CombinerOptions combinerOptions;
private String jsonReportName;
private String sparkReportName;
public void createReport() {
Path combinedJson = Paths.get(combinerOptions.getMergedReportFolderPath().toString(), jsonReportName);
ExtentReports extent = new ExtentReports();
try {
extent.createDomainFromJsonArchive(combinedJson.toFile());
} catch (IOException e) {
throw new CombinerException("Exception in creating merged JSON report.", e);
}
extent.attachReporter(createSparkReport());
extent.flush();
}
private ExtentSparkReporter createSparkReport() {
ExtentSparkReporter spark = new ExtentSparkReporter(
Paths.get(combinerOptions.getMergedReportFolderPath().toString(), sparkReportName).toFile());
try {
if (combinerOptions.getConfigType() == ConfigType.XML)
spark.loadXMLConfig(combinerOptions.getMergedReportFolderPath().toString() + "/" + "extent-config.xml");
else if (combinerOptions.getConfigType() == ConfigType.JSON)
spark.loadJSONConfig(
combinerOptions.getMergedReportFolderPath().toString() + "/" + "extent-config.json");
} catch (IOException e) {
throw new CombinerException("Unable to load extent configuration file for Spark report.");
}
return spark;
}
}