diff --git a/CHANGELOG.md b/CHANGELOG.md index c1eb3cc..3ff9697 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,15 @@ -## [4.10.0](https://github.com/extent-framework/extentreports-java/compare/v4.0.9...v4.1.0) +## [4.1.2](https://github.com/extent-framework/extentreports-java/compare/v4.1.1...v4.1.2) +#### Improvements +* [#114] Tags tab lost a display of a full name of test +* ExtentKlovReporter can not be initialized with the `projectName` + +#### Fixes +* [#115] Fixes issue with Base64 strings not displaying +* [#121] Fixes BDD SessionStats bug causing feature aggregates to be miscalculated + +## [4.1.1](https://github.com/extent-framework/extentreports-java/compare/v4.1.0...v4.1.1) + +## [4.1.0](https://github.com/extent-framework/extentreports-java/compare/v4.0.9...v4.1.0) #### Improvements * [#18] Steps count in dashboard displays 0 even though there are logged steps * [#94] Cleanup tag view naming diff --git a/pom-nexus.xml b/pom-nexus.xml index 768823d..6f0ec20 100644 --- a/pom-nexus.xml +++ b/pom-nexus.xml @@ -5,7 +5,7 @@ com.aventstack extentreports - 4.1.1 + 4.1.2 extentreports www.extentreports.com @@ -75,7 +75,7 @@ org.testng testng - 6.9.10 + 6.14.3 test diff --git a/pom.xml b/pom.xml index 604a5af..feb05d5 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.aventstack extentreports - 4.1.1 + 4.1.2 extentreports www.extentreports.com @@ -75,7 +75,7 @@ org.testng testng - 6.9.10 + 6.14.3 test diff --git a/src/main/java/com/aventstack/extentreports/ExtentReports.java b/src/main/java/com/aventstack/extentreports/ExtentReports.java index ecfc25a..e5f7a77 100644 --- a/src/main/java/com/aventstack/extentreports/ExtentReports.java +++ b/src/main/java/com/aventstack/extentreports/ExtentReports.java @@ -286,7 +286,7 @@ public void removeTest(ExtentTest test) { * */ @Override - public synchronized void flush() { + public void flush() { super.flush(); } @@ -361,7 +361,7 @@ public void setTestRunnerOutput(String log) { * @return {@link ExtentKlovReporter} */ public ExtentReports tryResolveMediaPath() { - setImagePathResolveDir(IMAGE_PATH_RESOLVER_DIR); + setMediaPathResolveDir(IMAGE_PATH_RESOLVER_DIR); return this; } @@ -374,8 +374,8 @@ public ExtentReports tryResolveMediaPath() { * * @return {@link ExtentKlovReporter} */ - public ExtentReports tryResolveScreenCapturePath(String[] paths) { - setImagePathResolveDir(paths); + public ExtentReports tryResolveMediaPath(String[] paths) { + setMediaPathResolveDir(paths); return this; } diff --git a/src/main/java/com/aventstack/extentreports/ReportObservable.java b/src/main/java/com/aventstack/extentreports/ReportObservable.java index 27add73..f523429 100644 --- a/src/main/java/com/aventstack/extentreports/ReportObservable.java +++ b/src/main/java/com/aventstack/extentreports/ReportObservable.java @@ -5,6 +5,7 @@ import java.util.Calendar; import java.util.Date; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Set; @@ -418,7 +419,7 @@ private void endTest(Test test) { *
  • A database being updated (eg. case of KlovReporter)
  • * */ - protected void flush() { + protected synchronized void flush() { generateRecentStatus(); notifyReporters(); } @@ -434,7 +435,6 @@ public synchronized void generateRecentStatus() { return; reportEndDate = Calendar.getInstance().getTime(); - refreshReportEntities(); for (Test test : testList) { endTest(test); @@ -452,13 +452,16 @@ public synchronized void generateRecentStatus() { test.getExceptionInfoContext().getAll().forEach(x -> exceptionContext.setExceptionContext(x, test)); } if (TestService.testHasChildren(test)) { - for (Test node : test.getNodeContext().getAll()) { + Iterator iter = test.getNodeContext().getIterator(); + while (iter.hasNext()) { + Test node = iter.next(); copyNodeAttributeAndRunTimeInfoToAttributeContexts(node); node.setUsesManualConfiguration(getAllowManualConfig()); } } } + refreshReportEntities(); updateReportStartTimeForManualConfigurationSetting(); } @@ -560,7 +563,7 @@ protected void setAnalysisStrategy(AnalysisStrategy strategy) { stats = new ReportStatusStats(strategy); } - protected void setImagePathResolveDir(String[] imagePathResolveDir) { + protected void setMediaPathResolveDir(String[] imagePathResolveDir) { this.imagePathResolveDir = imagePathResolveDir; } diff --git a/src/main/java/com/aventstack/extentreports/ReportStatusStats.java b/src/main/java/com/aventstack/extentreports/ReportStatusStats.java index 33e2f9f..8c5a7fc 100644 --- a/src/main/java/com/aventstack/extentreports/ReportStatusStats.java +++ b/src/main/java/com/aventstack/extentreports/ReportStatusStats.java @@ -1,5 +1,6 @@ package com.aventstack.extentreports; +import java.util.Iterator; import java.util.List; import com.aventstack.extentreports.gherkin.model.Scenario; @@ -391,7 +392,9 @@ private void updateEventsCount(Test test) { test.getLogContext().getAll().stream() .map(Log::getStatus) .forEach(this::incrementEvent); - for (Test node : test.getNodeContext().getAll()) { + Iterator iter = test.getNodeContext().getIterator(); + while (iter.hasNext()) { + Test node = iter.next(); updateEventsCount(node); } } diff --git a/src/main/java/com/aventstack/extentreports/model/ScreenCapture.java b/src/main/java/com/aventstack/extentreports/model/ScreenCapture.java index 2f4b988..493d296 100644 --- a/src/main/java/com/aventstack/extentreports/model/ScreenCapture.java +++ b/src/main/java/com/aventstack/extentreports/model/ScreenCapture.java @@ -25,9 +25,7 @@ public Boolean isBase64() { public String getSource() { if (getBase64String() != null) return "base64-img"; - String path = "file:///"; - path += getScreenCapturePath().replace("\\","/"); - return ""; + return ""; } } diff --git a/src/main/java/com/aventstack/extentreports/model/Test.java b/src/main/java/com/aventstack/extentreports/model/Test.java index 089b38a..0df24fb 100644 --- a/src/main/java/com/aventstack/extentreports/model/Test.java +++ b/src/main/java/com/aventstack/extentreports/model/Test.java @@ -305,7 +305,6 @@ public void setUsesManualConfiguration(boolean usesManualConfiguration) { private synchronized void updateStatus(Status logStatus) { int logStatusIndex = Status.getStatusHierarchy().indexOf(logStatus); int testStatusIndex = Status.getStatusHierarchy().indexOf(status); - status = logStatusIndex < testStatusIndex ? logStatus : status; } 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 2b5d4a9..1de5b69 100644 --- a/src/main/java/com/aventstack/extentreports/model/service/TestService.java +++ b/src/main/java/com/aventstack/extentreports/model/service/TestService.java @@ -71,5 +71,14 @@ public static String getRunDuration(Test test) { public static Long getRunDurationMillis(Test test) { return test.getEndTime().getTime() - test.getStartTime().getTime(); } + + public static String getHierarchicalName(Test test) { + StringBuilder sb = new StringBuilder(test.getName()); + while (test.getParent() != null) { + test = test.getParent(); + sb.insert(0, test.getName() + "."); + } + return sb.toString(); + } } diff --git a/src/main/java/com/aventstack/extentreports/reporter/ConfigurableReporter.java b/src/main/java/com/aventstack/extentreports/reporter/ConfigurableReporter.java index 44b57d6..e179883 100644 --- a/src/main/java/com/aventstack/extentreports/reporter/ConfigurableReporter.java +++ b/src/main/java/com/aventstack/extentreports/reporter/ConfigurableReporter.java @@ -40,6 +40,15 @@ public void loadXMLConfig(String filePath, Boolean silent) { public void loadXMLConfig(String filePath) { loadXMLConfig(filePath, false); } + + /** + * Loads configuration from an XML file + * + * @param file configuration {@link File} + */ + public void loadXMLConfig(File file) { + loadXMLConfig(file, false); + } /** * Loads configuration from an XML file diff --git a/src/main/java/com/aventstack/extentreports/reporter/ExtentKlovReporter.java b/src/main/java/com/aventstack/extentreports/reporter/ExtentKlovReporter.java index 86cff55..95dbb03 100644 --- a/src/main/java/com/aventstack/extentreports/reporter/ExtentKlovReporter.java +++ b/src/main/java/com/aventstack/extentreports/reporter/ExtentKlovReporter.java @@ -99,9 +99,16 @@ public class ExtentKlovReporter extends ConfigurableReporter { } /** - * Initializes the KlovReporter + * Initializes the KlovReporter with the project name and default report name + * + *

    + * The reportName will be created using the current timestamp + * + * @param projectName Name of the project + * */ - public ExtentKlovReporter() { + public ExtentKlovReporter(String projectName) { + this.projectName = projectName; } /** 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 bfa32d6..5ab7ae0 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 @@ -382,7 +382,7 @@ img.r-img { background: #9ccc65; } .skip-bg,.avatar.skip { - background: #64b5f6; + background: #ff9900; } .error-bg,.avatar.skip { background: #ffd54f; @@ -393,6 +393,10 @@ img.r-img { .b-skip { border-color: #64b5f6; } + .badge-skip { + background-color: #ff9900 !important; + color: #fff; + } .badge.status { background: transparent !important; } 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 5bbea1c..99ea49a 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="3da944e596e81f10ac6c1042c792af8a5a741023" jscommit="3da944e596e81f10ac6c1042c792af8a5a741023" iconcommit="3da944e596e81f10ac6c1042c792af8a5a741023"> +<#assign resourceCDN=config.getConfig('resourceCDN') cdnURI="cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@" csscommit="b00a2d0486596e73dd7326beacf352c639623a0e" jscommit="b00a2d0486596e73dd7326beacf352c639623a0e" iconcommit="b00a2d0486596e73dd7326beacf352c639623a0e"> <#if resourceCDN=="extentreports"> <#assign cdnURI="extentreports.com/resx" csscommit="" jscommit="" iconcommit=""> diff --git a/src/main/resources/com/aventstack/extentreports/view/spark/partials/tag.ftl b/src/main/resources/com/aventstack/extentreports/view/spark/partials/tag.ftl index 4e7e917..3afb465 100644 --- a/src/main/resources/com/aventstack/extentreports/view/spark/partials/tag.ftl +++ b/src/main/resources/com/aventstack/extentreports/view/spark/partials/tag.ftl @@ -27,7 +27,8 @@ <#if context.passed!=0>${context.passed} <#if context.failed!=0>${context.failed} - <#if context.skipped!=0>${context.skipped} + <#if context.skipped!=0>${context.skipped} + <#if context.others!=0>${context.others} @@ -36,7 +37,8 @@

    ${context.name}

    <#if context.passed!=0>${context.passed} passed <#if context.failed!=0>${context.failed} failed - <#if context.skipped!=0>${context.skipped} skipped + <#if context.skipped!=0>${context.skipped} skipped + <#if context.others!=0>${context.others} others diff --git a/src/test/java/com/aventstack/extentreports/ParallelClass3.java b/src/test/java/com/aventstack/extentreports/ParallelClass3.java new file mode 100644 index 0000000..9b13b0d --- /dev/null +++ b/src/test/java/com/aventstack/extentreports/ParallelClass3.java @@ -0,0 +1,32 @@ +package com.aventstack.extentreports; + +import java.lang.reflect.Method; + +import org.testng.Assert; +import org.testng.annotations.Test; + +import com.aventstack.extentreports.Status; +import com.aventstack.extentreports.common.ExtentManager; +import com.aventstack.extentreports.common.ExtentTestManager; + +public class ParallelClass3 extends ParallelClassesBase { + + @Test + public void parallelClass1TestResultMustEqualWarning(Method method) { + ExtentTestManager.createTest(method.getName()).info("Log from threadId: " + Thread.currentThread().getId()); + ExtentTestManager.getTest().warning("Log from threadId: " + Thread.currentThread().getId()); + ExtentManager.getInstance().flush(); + + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.WARNING); + } + + @Test + public void parallelClass1TestResultMustEqualSkip(Method method) { + ExtentTestManager.createTest(method.getName()).skip("Log from threadId: " + Thread.currentThread().getId()); + ExtentTestManager.getTest().pass("Log from threadId: " + Thread.currentThread().getId()); + ExtentManager.getInstance().flush(); + + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.SKIP); + } + +} diff --git a/src/test/java/com/aventstack/extentreports/ParallelClass4.java b/src/test/java/com/aventstack/extentreports/ParallelClass4.java new file mode 100644 index 0000000..7692d9e --- /dev/null +++ b/src/test/java/com/aventstack/extentreports/ParallelClass4.java @@ -0,0 +1,32 @@ +package com.aventstack.extentreports; + +import java.lang.reflect.Method; + +import org.testng.Assert; +import org.testng.annotations.Test; + +import com.aventstack.extentreports.Status; +import com.aventstack.extentreports.common.ExtentManager; +import com.aventstack.extentreports.common.ExtentTestManager; + +public class ParallelClass4 extends ParallelClassesBase { + + @Test + public void parallelClass1TestResultMustEqualWarning(Method method) { + ExtentTestManager.createTest(method.getName()).info("Log from threadId: " + Thread.currentThread().getId()); + ExtentTestManager.getTest().warning("Log from threadId: " + Thread.currentThread().getId()); + ExtentManager.getInstance().flush(); + + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.WARNING); + } + + @Test + public void parallelClass1TestResultMustEqualSkip(Method method) { + ExtentTestManager.createTest(method.getName()).skip("Log from threadId: " + Thread.currentThread().getId()); + ExtentTestManager.getTest().pass("Log from threadId: " + Thread.currentThread().getId()); + ExtentManager.getInstance().flush(); + + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.SKIP); + } + +} diff --git a/src/test/java/com/aventstack/extentreports/ParallelMethods.java b/src/test/java/com/aventstack/extentreports/ParallelMethods.java index 0222b5e..4726506 100644 --- a/src/test/java/com/aventstack/extentreports/ParallelMethods.java +++ b/src/test/java/com/aventstack/extentreports/ParallelMethods.java @@ -21,49 +21,325 @@ public void beforeClass() { @AfterClass public void afterClass() { - ExtentManager.getInstance().flush(); + ExtentTestManager.getReporter().flush(); } @Test public void method1(Method method) { - ExtentTestManager.createTest(method.getName()).pass("pass"); + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).pass("pass"); + ExtentTestManager.getReporter().flush(); Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); } @Test public void method2(Method method) { - ExtentTestManager.createTest(method.getName()).fail("fail"); + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).fail("fail"); + ExtentTestManager.getReporter().flush(); Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.FAIL); } @Test public void method3(Method method) { - ExtentTestManager.createTest(method.getName()).error("error"); + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).error("error"); + ExtentTestManager.getReporter().flush(); Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.ERROR); } @Test public void method4(Method method) { - ExtentTestManager.createTest(method.getName()).warning("warning"); + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).warning("warning"); + ExtentTestManager.getReporter().flush(); Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.WARNING); } @Test public void method5(Method method) { - ExtentTestManager.createTest(method.getName()).info("info"); + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).info("info"); + ExtentTestManager.getReporter().flush(); Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); } @Test public void method6(Method method) { - ExtentTestManager.createTest(method.getName()).fatal("fatal"); + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).fatal("fatal"); + ExtentTestManager.getReporter().flush(); Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.FATAL); } @Test public void method7(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).pass(""); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method17(Method method) { + ExtentTestManager.createTest(method.getName()).pass("pass"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method27(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).fail("fail"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.FAIL); + } + + @Test + public void method37(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).error("error"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.ERROR); + } + + @Test + public void method47(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).warning("warning"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.WARNING); + } + + @Test + public void method57(Method method) { + ExtentTestManager.createTest(method.getName()).info("info"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method67(Method method) { + ExtentTestManager.createTest(method.getName()).fatal("fatal"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.FATAL); + } + + @Test + public void method77(Method method) { ExtentTestManager.createTest(method.getName()); + ExtentTestManager.getReporter().flush(); Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); } + @Test + public void method1x(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).pass("pass"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method2x(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).fail("fail"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.FAIL); + } + + @Test + public void method3x(Method method) { + ExtentTestManager.createTest(method.getName()).error("error"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.ERROR); + } + + @Test + public void method4x(Method method) { + ExtentTestManager.createTest(method.getName()).warning("warning"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.WARNING); + } + + @Test + public void method5x(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).info("info"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method6x(Method method) { + ExtentTestManager.createTest(method.getName()).fatal("fatal"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.FATAL); + } + + @Test + public void method7x(Method method) { + ExtentTestManager.createTest(method.getName()); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method17y(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).pass("pass"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method27y(Method method) { + ExtentTestManager.createTest(method.getName()).fail("fail"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.FAIL); + } + + @Test + public void method37y(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).error("error"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.ERROR); + } + + @Test + public void method47y(Method method) { + ExtentTestManager.createTest(method.getName()).warning("warning"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.WARNING); + } + + @Test + public void method57y(Method method) { + ExtentTestManager.createTest(method.getName()).info("info"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method67y(Method method) { + ExtentTestManager.createTest(method.getName()).fatal("fatal"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.FATAL); + } + + @Test + public void method77y(Method method) { + ExtentTestManager.createTest(method.getName()); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method1v(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).pass("pass"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method2v(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).fail("fail"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.FAIL); + } + + @Test + public void method3v(Method method) { + ExtentTestManager.createTest(method.getName()).error("error"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.ERROR); + } + + @Test + public void method4v(Method method) { + ExtentTestManager.createTest(method.getName()).warning("warning"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.WARNING); + } + + @Test + public void method5v(Method method) { + ExtentTestManager.createTest(method.getName()).info("info"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method6v(Method method) { + ExtentTestManager.createTest(method.getName()).fatal("fatal"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.FATAL); + } + + @Test + public void method7v(Method method) { + ExtentTestManager.createTest(method.getName()); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method17b(Method method) { + ExtentTestManager.createTest(method.getName()).pass("pass"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method27b(Method method) { + ExtentTestManager.createTest(method.getName()).fail("fail"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.FAIL); + } + + @Test + public void method37b(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).error("error"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.ERROR); + } + + @Test + public void method47b(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).warning("warning"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.WARNING); + } + + @Test + public void method57b(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).info("info"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method67b(Method method) { + ExtentTestManager.createTest(method.getName()).createNode(method.getName()).fatal("fatal"); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.FATAL); + } + + @Test + public void method77g(Method method) { + ExtentTestManager.createTest(method.getName()).pass("").createNode(method.getName()).info(""); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method47g(Method method) { + ExtentTestManager.createTest(method.getName()).pass("").createNode(method.getName()).info(""); + ExtentTestManager.getReporter().flush(); + } + + @Test + public void method57g(Method method) { + ExtentTestManager.createTest(method.getName()).pass("").createNode(method.getName()).info(""); + ExtentTestManager.getReporter().flush(); + Assert.assertEquals(ExtentTestManager.getTest().getStatus(), Status.PASS); + } + + @Test + public void method67g(Method method) { + ExtentTestManager.createTest(method.getName()).pass("").createNode(method.getName()).info(""); + ExtentTestManager.getReporter().flush(); + } + + @Test + public void method77u(Method method) { + ExtentTestManager.createTest(method.getName()).pass("").createNode(method.getName()).info(""); + ExtentTestManager.getReporter().flush(); + } } diff --git a/src/test/java/com/aventstack/extentreports/common/ExtentTestManager.java b/src/test/java/com/aventstack/extentreports/common/ExtentTestManager.java index f555606..b514b8b 100644 --- a/src/test/java/com/aventstack/extentreports/common/ExtentTestManager.java +++ b/src/test/java/com/aventstack/extentreports/common/ExtentTestManager.java @@ -11,19 +11,23 @@ public class ExtentTestManager { static Map extentTestMap = new HashMap(); private static ExtentReports extent; - public static synchronized void setReporter(ExtentReports extent) { + public static void setReporter(ExtentReports extent) { ExtentTestManager.extent = extent; } + + public static ExtentReports getReporter() { + return extent; + } public static synchronized ExtentTest getTest() { return extentTestMap.get((int) (long) (Thread.currentThread().getId())); } - public static synchronized ExtentTest createTest(String testName) { + public static ExtentTest createTest(String testName) { return createTest(testName, ""); } - public static synchronized ExtentTest createTest(String testName, String desc) { + public static ExtentTest createTest(String testName, String desc) { ExtentTest test = extent.createTest(testName, desc); extentTestMap.put((int) (long) (Thread.currentThread().getId()), test); diff --git a/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest1.java b/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest1.java index 210c98f..46aa49f 100644 --- a/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest1.java +++ b/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest1.java @@ -12,19 +12,19 @@ public class ParallelTest1 extends ExtentTestNGReportBuilder { @Test(groups = "pass") public void passTest1() { Reporter.log("Started passTest"); - try { Thread.sleep(2000); } catch(Exception e) { } + try { Thread.sleep(100); } catch(Exception e) { } Assert.assertEquals(Status.PASS, Status.PASS); } @Test(expectedExceptions = SkipException.class, groups = "skip") public void skipTest1() { - try { Thread.sleep(2000); } catch(Exception e) { } + try { Thread.sleep(100); } catch(Exception e) { } throw new SkipException("Intentionally skipped test."); } @Test(expectedExceptions = RuntimeException.class, groups = "fail") public void failTest1() { - try { Thread.sleep(2000); } catch(Exception e) { } + try { Thread.sleep(100); } catch(Exception e) { } throw new RuntimeException("Intentionally failed test."); } diff --git a/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest2.java b/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest2.java index 291d0fd..11c77cc 100644 --- a/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest2.java +++ b/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest2.java @@ -12,19 +12,19 @@ public class ParallelTest2 extends ExtentTestNGReportBuilder { @Test(groups = "pass") public void passTest2() { Reporter.log("Started passTest"); - try { Thread.sleep(2000); } catch(Exception e) { } + try { Thread.sleep(100); } catch(Exception e) { } Assert.assertEquals(Status.PASS, Status.PASS); } @Test(expectedExceptions = SkipException.class, groups = "skip") public void skipTest2() { - try { Thread.sleep(2000); } catch(Exception e) { } + try { Thread.sleep(100); } catch(Exception e) { } throw new SkipException("Intentionally skipped test."); } @Test(expectedExceptions = RuntimeException.class, groups = "fail") public void failTest2() { - try { Thread.sleep(2000); } catch(Exception e) { } + try { Thread.sleep(100); } catch(Exception e) { } throw new RuntimeException("Intentionally failed test."); } diff --git a/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest3.java b/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest3.java new file mode 100644 index 0000000..f225a4e --- /dev/null +++ b/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest3.java @@ -0,0 +1,31 @@ +package com.aventstack.extentreports.testng.components; + +import org.testng.Assert; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.Test; + +import com.aventstack.extentreports.Status; + +public class ParallelTest3 extends ExtentTestNGReportBuilder { + + @Test(groups = "pass") + public void passTest2() { + Reporter.log("Started passTest"); + try { Thread.sleep(100); } catch(Exception e) { } + Assert.assertEquals(Status.PASS, Status.PASS); + } + + @Test(expectedExceptions = SkipException.class, groups = "skip") + public void skipTest2() { + try { Thread.sleep(100); } catch(Exception e) { } + throw new SkipException("Intentionally skipped test."); + } + + @Test(expectedExceptions = RuntimeException.class, groups = "fail") + public void failTest2() { + try { Thread.sleep(100); } catch(Exception e) { } + throw new RuntimeException("Intentionally failed test."); + } + +} diff --git a/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest4.java b/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest4.java new file mode 100644 index 0000000..314ebe8 --- /dev/null +++ b/src/test/java/com/aventstack/extentreports/testng/components/ParallelTest4.java @@ -0,0 +1,31 @@ +package com.aventstack.extentreports.testng.components; + +import org.testng.Assert; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.Test; + +import com.aventstack.extentreports.Status; + +public class ParallelTest4 extends ExtentTestNGReportBuilder { + + @Test(groups = "pass") + public void passTest2() { + Reporter.log("Started passTest"); + try { Thread.sleep(100); } catch(Exception e) { } + Assert.assertEquals(Status.PASS, Status.PASS); + } + + @Test(expectedExceptions = SkipException.class, groups = "skip") + public void skipTest2() { + try { Thread.sleep(100); } catch(Exception e) { } + throw new SkipException("Intentionally skipped test."); + } + + @Test(expectedExceptions = RuntimeException.class, groups = "fail") + public void failTest2() { + try { Thread.sleep(100); } catch(Exception e) { } + throw new RuntimeException("Intentionally failed test."); + } + +} diff --git a/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-classes-api-tests.xml b/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-classes-api-tests.xml index 7c338ee..71e23c7 100644 --- a/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-classes-api-tests.xml +++ b/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-classes-api-tests.xml @@ -3,18 +3,18 @@ - - - - + + + + - - - + + + - - - + + + \ No newline at end of file diff --git a/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-classes-testng-components.xml b/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-classes-testng-components.xml index 8a95775..a524d9d 100644 --- a/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-classes-testng-components.xml +++ b/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-classes-testng-components.xml @@ -1,5 +1,5 @@ - + diff --git a/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-classes.xml b/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-classes.xml index 08544d8..2a68c14 100644 --- a/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-classes.xml +++ b/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-classes.xml @@ -1,9 +1,11 @@ - + + + \ No newline at end of file diff --git a/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-methods.xml b/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-methods.xml index 91ad18d..6f177d3 100644 --- a/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-methods.xml +++ b/src/test/resources/com/aventstack/extentreports/testng/parallel/parallel-methods.xml @@ -1,6 +1,6 @@ - - + + diff --git a/src/test/resources/com/aventstack/extentreports/testng/parallel/suite.xml b/src/test/resources/com/aventstack/extentreports/testng/parallel/suite.xml new file mode 100644 index 0000000..b6a27eb --- /dev/null +++ b/src/test/resources/com/aventstack/extentreports/testng/parallel/suite.xml @@ -0,0 +1,9 @@ + + + + + + + + +