diff --git a/CHANGELOG.md b/CHANGELOG.md
index e7aba3a..d05ab71 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+## [4.1.5](https://github.com/extent-framework/extentreports-java/compare/v4.1.4...v4.1.5)
+#### Fixes
+* [#139] BDD: Feature must not be eligible to increment counts for TestAttributeContext, part of fix of [cucumber4-adapter#50](https://github.com/extent-framework/extentreports-cucumber4-adapter/issues/50)
+* [#143] Fix issue with a long node name breaking view (Spark)
+* [#144] Fix Skipped status colors in charts
+* [#145] ExtentKlovReporter adds BasicConfiguration
+
## [4.1.4](https://github.com/extent-framework/extentreports-java/compare/v4.1.3...v4.1.4)
#### Improvements
* [#114] ExtentSparkReporter to display hierarchical name in tags view
diff --git a/pom-nexus.xml b/pom-nexus.xml
index 7aa8e5c..6949428 100644
--- a/pom-nexus.xml
+++ b/pom-nexus.xml
@@ -5,7 +5,7 @@
com.aventstack
extentreports
- 4.1.4
+ 4.1.5
extentreports
www.extentreports.com
diff --git a/pom.xml b/pom.xml
index f1d2aeb..da95f98 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.aventstack
extentreports
- 4.1.4
+ 4.1.5
extentreports
www.extentreports.com
diff --git a/src/main/java/com/aventstack/extentreports/model/context/TestAttributeTestContext.java b/src/main/java/com/aventstack/extentreports/model/context/TestAttributeTestContext.java
index 9354028..560bda6 100644
--- a/src/main/java/com/aventstack/extentreports/model/context/TestAttributeTestContext.java
+++ b/src/main/java/com/aventstack/extentreports/model/context/TestAttributeTestContext.java
@@ -7,6 +7,7 @@
import com.aventstack.extentreports.Status;
import com.aventstack.extentreports.model.Attribute;
import com.aventstack.extentreports.model.Test;
+import com.aventstack.extentreports.model.context.filter.TestAttributeContextFilters;
public class TestAttributeTestContext implements Serializable {
@@ -29,6 +30,8 @@ public void setTest(Test test) {
}
private void updateTestStatusCounts(Test test) {
+ if (!TestAttributeContextFilters.testHasStatusIncrEligibility(test))
+ return;
if (test.getStatus() == Status.PASS) {
passed++;
} else if (test.getStatus() == Status.FAIL || test.getStatus() == Status.FATAL) {
diff --git a/src/main/java/com/aventstack/extentreports/model/context/filter/TestAttributeContextFilters.java b/src/main/java/com/aventstack/extentreports/model/context/filter/TestAttributeContextFilters.java
new file mode 100644
index 0000000..87d15a8
--- /dev/null
+++ b/src/main/java/com/aventstack/extentreports/model/context/filter/TestAttributeContextFilters.java
@@ -0,0 +1,12 @@
+package com.aventstack.extentreports.model.context.filter;
+
+import com.aventstack.extentreports.model.Test;
+
+public class TestAttributeContextFilters {
+
+ public static boolean testHasStatusIncrEligibility(Test test) {
+ return test.isBehaviorDrivenType() && test.getBehaviorDrivenTypeName().equalsIgnoreCase("feature") ? false
+ : true;
+ }
+
+}
diff --git a/src/main/java/com/aventstack/extentreports/model/service/TestService.java b/src/main/java/com/aventstack/extentreports/model/service/TestService.java
index d967747..24a3abb 100644
--- a/src/main/java/com/aventstack/extentreports/model/service/TestService.java
+++ b/src/main/java/com/aventstack/extentreports/model/service/TestService.java
@@ -14,31 +14,31 @@ public static Boolean testHasAttributes(Test test) {
}
public static Boolean testHasAuthor(Test test) {
- return !test.getAuthorContext().isEmpty();
+ return test != null && !test.getAuthorContext().isEmpty();
}
public static Boolean testHasCategory(Test test) {
- return !test.getCategoryContext().isEmpty();
+ return test != null && !test.getCategoryContext().isEmpty();
}
public static Boolean testHasDevice(Test test) {
- return !test.getDeviceContext().isEmpty();
+ return test != null && !test.getDeviceContext().isEmpty();
}
public static Boolean testHasException(Test test) {
- return !test.getExceptionInfoContext().isEmpty();
+ return test != null && !test.getExceptionInfoContext().isEmpty();
}
public static Boolean testHasChildren(Test test) {
- return !test.getNodeContext().isEmpty();
+ return test != null && !test.getNodeContext().isEmpty();
}
public static Boolean testHasLog(Test test) {
- return !test.getLogContext().isEmpty();
+ return test != null && !test.getLogContext().isEmpty();
}
public static Boolean testHasScreenCapture(Test test) {
- return !test.getScreenCaptureContext().isEmpty();
+ return test != null && !test.getScreenCaptureContext().isEmpty();
}
public static Boolean testHasScreenCapture(Test test, Boolean deep) {
@@ -54,7 +54,7 @@ public static Boolean testHasScreenCapture(Test test, Boolean deep) {
}
public static Boolean isTestBehaviorDriven(Test test) {
- return test.getBddType() != null;
+ return test != null && test.getBddType() != null;
}
public static String getBehaviorDrivenTypeName(Class extends IGherkinFormatterModel> bddType)
diff --git a/src/main/java/com/aventstack/extentreports/reporter/ConfigurableReporter.java b/src/main/java/com/aventstack/extentreports/reporter/ConfigurableReporter.java
index e179883..f696599 100644
--- a/src/main/java/com/aventstack/extentreports/reporter/ConfigurableReporter.java
+++ b/src/main/java/com/aventstack/extentreports/reporter/ConfigurableReporter.java
@@ -120,8 +120,14 @@ protected void init(String[] configFilePath, BasicConfiguration userConfig) {
}
protected void loadInternalReporterConfiguration(String[] configFilePath) {
+ if (configFilePath == null || configFilePath.length == 0)
+ return;
+
ClassLoader loader = getClass().getClassLoader();
- Arrays.stream(configFilePath).map(x -> loader.getResourceAsStream(x)).filter(x -> x != null).findFirst()
+ Arrays.stream(configFilePath)
+ .map(x -> loader.getResourceAsStream(x))
+ .filter(x -> x != null)
+ .findFirst()
.ifPresent(x -> loadConfig(x));
}
diff --git a/src/main/java/com/aventstack/extentreports/reporter/ExtentKlovReporter.java b/src/main/java/com/aventstack/extentreports/reporter/ExtentKlovReporter.java
index 95dbb03..bf069ab 100644
--- a/src/main/java/com/aventstack/extentreports/reporter/ExtentKlovReporter.java
+++ b/src/main/java/com/aventstack/extentreports/reporter/ExtentKlovReporter.java
@@ -36,6 +36,7 @@
import com.aventstack.extentreports.model.context.TestAttributeTestContextStore;
import com.aventstack.extentreports.model.service.LogService;
import com.aventstack.extentreports.model.service.TestService;
+import com.aventstack.extentreports.reporter.configuration.ExtentKlovReporterConfiguration;
import com.aventstack.extentreports.utils.IntUtil;
import com.aventstack.extentreports.utils.MongoUtil;
import com.mongodb.MongoClient;
@@ -64,6 +65,8 @@ public class ExtentKlovReporter extends ConfigurableReporter {
private static final String DB_NAME = "klov";
private static final String DEFAULT_PROJECT_NAME = "Default";
+ private ExtentKlovReporterConfiguration config = new ExtentKlovReporterConfiguration(this);
+
private String url;
private List testList;
private ReportStatusStats stats;
@@ -250,14 +253,23 @@ public ExtentKlovReporter initKlovServerConnection(String url) {
return this;
}
+ public void loadInitializationParams(InputStream is) {
+ init(null, config);
+ loadConfig(is);
+ loadInitializationParams();
+ }
+
public void loadInitializationParams(String propertiesPath) throws FileNotFoundException {
+ init(null, config);
File f = new File(propertiesPath);
- InputStream stream = new FileInputStream(f);
- loadConfig(stream);
- loadInitializationParams();
+ if (f.exists()) {
+ InputStream stream = new FileInputStream(f);
+ loadInitializationParams(stream);
+ }
}
public void loadInitializationParams(Properties props) {
+ init(null, config);
loadConfig(props);
loadInitializationParams();
}
diff --git a/src/main/java/com/aventstack/extentreports/reporter/configuration/ExtentKlovReporterConfiguration.java b/src/main/java/com/aventstack/extentreports/reporter/configuration/ExtentKlovReporterConfiguration.java
new file mode 100644
index 0000000..c222c0a
--- /dev/null
+++ b/src/main/java/com/aventstack/extentreports/reporter/configuration/ExtentKlovReporterConfiguration.java
@@ -0,0 +1,11 @@
+package com.aventstack.extentreports.reporter.configuration;
+
+import com.aventstack.extentreports.reporter.AbstractReporter;
+
+public class ExtentKlovReporterConfiguration extends RichViewReporterConfiguration {
+
+ public ExtentKlovReporterConfiguration(AbstractReporter reporter) {
+ super(reporter);
+ }
+
+}
diff --git a/src/main/resources/com/aventstack/extentreports/offline/spark/css/spark-style.css b/src/main/resources/com/aventstack/extentreports/offline/spark/css/spark-style.css
index aaf555d..7693bd7 100644
--- a/src/main/resources/com/aventstack/extentreports/offline/spark/css/spark-style.css
+++ b/src/main/resources/com/aventstack/extentreports/offline/spark/css/spark-style.css
@@ -217,7 +217,8 @@ td {
padding: 0 16px 20px 16px;
}
.bdd-report .accordion .node {
-
+ width: 90%;
+ max-width: 90%;
}
.bdd-report .accordion .node-description {
font-weight: 400;
diff --git a/src/main/resources/com/aventstack/extentreports/offline/spark/js/spark-script.js b/src/main/resources/com/aventstack/extentreports/offline/spark/js/spark-script.js
index c853841..9d33a0f 100644
--- a/src/main/resources/com/aventstack/extentreports/offline/spark/js/spark-script.js
+++ b/src/main/resources/com/aventstack/extentreports/offline/spark/js/spark-script.js
@@ -243,7 +243,7 @@ function drawChart(ctx, config) {
statusGroup.passParent, statusGroup.failParent, statusGroup.fatalParent, statusGroup.errorParent, statusGroup.warningParent, statusGroup.skipParent
],
backgroundColor: [
- "#00af00", "#F7464A", "#8b0000", "#ff6347", "#FDB45C", "#1e90ff"
+ "#00af00", "#F7464A", "#8b0000", "#ff6347", "#FDB45C", "#ff9900"
]
}],
labels: [ "Pass", "Fail", "Fatal", "Error", "Warning", "Skip" ]
@@ -268,7 +268,7 @@ function drawChart(ctx, config) {
statusGroup.passChild, statusGroup.failChild, statusGroup.fatalChild, statusGroup.errorChild, statusGroup.warningChild, statusGroup.skipChild,statusGroup.infoChild
],
backgroundColor: [
- "#00af00", "#F7464A", "#8b0000", "#ff6347", "#FDB45C", "#1e90ff", "#46BFBD"
+ "#00af00", "#F7464A", "#8b0000", "#ff6347", "#FDB45C", "#ff9900", "#46BFBD"
]
}],
labels: [ "Pass", "Fail", "Fatal", "Error", "Warning", "Skip", "Info" ]
@@ -293,7 +293,7 @@ function drawChart(ctx, config) {
statusGroup.passGrandChild, statusGroup.failGrandChild, statusGroup.fatalGrandChild, statusGroup.errorGrandChild, statusGroup.warningGrandChild, statusGroup.skipGrandChild, statusGroup.infoGrandChild
],
backgroundColor: [
- "#00af00", "#F7464A", "#8b0000", "#ff6347", "#FDB45C", "#1e90ff", "#46BFBD"
+ "#00af00", "#F7464A", "#8b0000", "#ff6347", "#FDB45C", "#ff9900", "#46BFBD"
]
}],
labels: [ "Pass", "Fail", "Fatal", "Error", "Warning", "Skip", "Info" ]
@@ -318,7 +318,7 @@ function drawChart(ctx, config) {
statusGroup.passEvents, statusGroup.failEvents, statusGroup.fatalEvents, statusGroup.errorEvents, statusGroup.warningEvents, statusGroup.skipEvents, statusGroup.infoEvents
],
backgroundColor: [
- "#00af00", "#F7464A", "#8b0000", "#ff6347", "#FDB45C", "#1e90ff", "#46BFBD"
+ "#00af00", "#F7464A", "#8b0000", "#ff6347", "#FDB45C", "#ff9900", "#46BFBD"
]
}],
labels: [ "Pass", "Fail", "Fatal", "Error", "Warning", "Skip", "Info" ]
diff --git a/src/main/resources/com/aventstack/extentreports/view/spark/partials/head.ftl b/src/main/resources/com/aventstack/extentreports/view/spark/partials/head.ftl
index 0a8de70..3a9c00a 100644
--- a/src/main/resources/com/aventstack/extentreports/view/spark/partials/head.ftl
+++ b/src/main/resources/com/aventstack/extentreports/view/spark/partials/head.ftl
@@ -1,4 +1,4 @@
-<#assign resourceCDN=config.getConfig('resourceCDN') cdnURI="cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@" csscommit="74cc0d02f0116d1b5665bd07f6aea22c71033efe" jscommit="b00a2d0486596e73dd7326beacf352c639623a0e" iconcommit="b00a2d0486596e73dd7326beacf352c639623a0e">
+<#assign resourceCDN=config.getConfig('resourceCDN') cdnURI="cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@" csscommit="7e408aed24af91e1ad76f49a74ecfa0ef1d97cfb" jscommit="ac7abbc71b4bb073da00153a5a3fdbcfe0c95e2a" iconcommit="b00a2d0486596e73dd7326beacf352c639623a0e">
<#if resourceCDN=="extentreports">
<#assign cdnURI="extentreports.com/resx" csscommit="" jscommit="" iconcommit="">
#if>