From 713d8f0bfdcdc4f23241b2023f19f8f4a08b54fe Mon Sep 17 00:00:00 2001 From: qameta-ci Date: Mon, 13 Dec 2021 15:19:09 +0000 Subject: [PATCH 1/5] set next development version 2.18 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index efc4eeb91..08b7c16d4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=2.17.2 +version=2.18-SNAPSHOT org.gradle.daemon=true org.gradle.parallel=true From 19e8e8de7721423fbf254a9ea8e48f439bf24217 Mon Sep 17 00:00:00 2001 From: Boris Osipov Date: Mon, 10 Jan 2022 15:49:37 +0300 Subject: [PATCH 2/5] fix framework labels for allure-cucumber integrations (via #703) --- .../main/java/io/qameta/allure/cucumber5jvm/LabelBuilder.java | 2 +- .../java/io/qameta/allure/cucumber6jvm/AllureCucumber6Jvm.java | 2 +- .../main/java/io/qameta/allure/cucumber6jvm/LabelBuilder.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/allure-cucumber5-jvm/src/main/java/io/qameta/allure/cucumber5jvm/LabelBuilder.java b/allure-cucumber5-jvm/src/main/java/io/qameta/allure/cucumber5jvm/LabelBuilder.java index d888a5c1e..ba18430d3 100644 --- a/allure-cucumber5-jvm/src/main/java/io/qameta/allure/cucumber5jvm/LabelBuilder.java +++ b/allure-cucumber5-jvm/src/main/java/io/qameta/allure/cucumber5jvm/LabelBuilder.java @@ -120,7 +120,7 @@ class LabelBuilder { createStoryLabel(scenario.getName()), createSuiteLabel(featureName), createTestClassLabel(scenario.getName()), - createFrameworkLabel("cucumber4jvm"), + createFrameworkLabel("cucumber5jvm"), createLanguageLabel("java"), createLabel("gherkin_uri", uri.toString()) )); diff --git a/allure-cucumber6-jvm/src/main/java/io/qameta/allure/cucumber6jvm/AllureCucumber6Jvm.java b/allure-cucumber6-jvm/src/main/java/io/qameta/allure/cucumber6jvm/AllureCucumber6Jvm.java index 88ed7caea..c208ecd9f 100644 --- a/allure-cucumber6-jvm/src/main/java/io/qameta/allure/cucumber6jvm/AllureCucumber6Jvm.java +++ b/allure-cucumber6-jvm/src/main/java/io/qameta/allure/cucumber6jvm/AllureCucumber6Jvm.java @@ -68,7 +68,7 @@ import static io.qameta.allure.util.ResultsUtils.md5; /** - * Allure plugin for Cucumber JVM 5.0. + * Allure plugin for Cucumber JVM 6.0. */ @SuppressWarnings({ "ClassDataAbstractionCoupling", diff --git a/allure-cucumber6-jvm/src/main/java/io/qameta/allure/cucumber6jvm/LabelBuilder.java b/allure-cucumber6-jvm/src/main/java/io/qameta/allure/cucumber6jvm/LabelBuilder.java index 7058c714b..2c0dcdc5f 100644 --- a/allure-cucumber6-jvm/src/main/java/io/qameta/allure/cucumber6jvm/LabelBuilder.java +++ b/allure-cucumber6-jvm/src/main/java/io/qameta/allure/cucumber6jvm/LabelBuilder.java @@ -120,7 +120,7 @@ class LabelBuilder { createStoryLabel(scenario.getName()), createSuiteLabel(featureName), createTestClassLabel(scenario.getName()), - createFrameworkLabel("cucumber4jvm"), + createFrameworkLabel("cucumber6jvm"), createLanguageLabel("java"), createLabel("gherkin_uri", uri.toString()) )); From 805112ee1201d7dedf43d071d768befb12497673 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jan 2022 16:51:49 +0300 Subject: [PATCH 3/5] bump com.diffplug.spotless from 5.13.0 to 6.1.2 (via #702) --- settings.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 8abe6b745..b302ad05e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -43,7 +43,7 @@ pluginManagement { gradlePluginPortal() } plugins { - id("com.diffplug.spotless") version "5.13.0" + id("com.diffplug.spotless") version "6.1.2" id("com.github.johnrengelman.shadow") version "7.1.0" id("com.gradle.enterprise") version "3.7.2" id("io.github.gradle-nexus.publish-plugin") version "1.1.0" From ddbae27ce93d20da5b70997a96e874814578cc73 Mon Sep 17 00:00:00 2001 From: Dmitry Baev Date: Thu, 17 Feb 2022 18:05:22 +0300 Subject: [PATCH 4/5] junit-platform: allow listener reuse (via #711) --- .../junitplatform/AllureJunitPlatform.java | 54 ++++++++++++---- .../AllureJunitPlatformTest.java | 62 +++++++++++++++++++ 2 files changed, 104 insertions(+), 12 deletions(-) diff --git a/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java b/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java index ae12f4eb3..88d154c72 100644 --- a/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java +++ b/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java @@ -115,8 +115,18 @@ public class AllureJunitPlatform implements TestExecutionListener { private final ThreadLocal testPlanStorage = new InheritableThreadLocal<>(); - private final Uuids tests = new Uuids(); - private final Uuids containers = new Uuids(); + private final ThreadLocal tests = new InheritableThreadLocal() { + @Override + protected Uuids initialValue() { + return new Uuids(); + } + }; + private final ThreadLocal containers = new InheritableThreadLocal() { + @Override + protected Uuids initialValue() { + return new Uuids(); + } + }; private final AllureLifecycle lifecycle; @@ -135,11 +145,15 @@ public AllureLifecycle getLifecycle() { @Override public void testPlanExecutionStarted(final TestPlan testPlan) { testPlanStorage.set(testPlan); + tests.set(new Uuids()); + containers.set(new Uuids()); } @Override public void testPlanExecutionFinished(final TestPlan testPlan) { testPlanStorage.remove(); + tests.remove(); + containers.remove(); } @Override @@ -199,7 +213,7 @@ public void executionSkipped(final TestIdentifier testIdentifier, ); } - @SuppressWarnings({"ReturnCount", "PMD.NcssCount", "CyclomaticComplexity" }) + @SuppressWarnings({"ReturnCount", "PMD.NcssCount", "CyclomaticComplexity"}) @Override public void reportingEntryPublished(final TestIdentifier testIdentifier, final ReportEntry entry) { @@ -270,7 +284,7 @@ private void processParameterEvent(final Map keyValuePairs) { ); } - @SuppressWarnings({"ReturnCount" }) + @SuppressWarnings({"ReturnCount"}) private void processFixtureEvent(final TestIdentifier testIdentifier, final Map keyValuePairs) { final String type = keyValuePairs.get(ALLURE_FIXTURE); @@ -283,7 +297,7 @@ private void processFixtureEvent(final TestIdentifier testIdentifier, switch (event) { case EVENT_START: - final Optional maybeParent = containers.get(testIdentifier); + final Optional maybeParent = getContainer(testIdentifier); if (!maybeParent.isPresent()) { return; } @@ -308,7 +322,7 @@ private void resetContext(final TestIdentifier testIdentifier) { // test case uuid to allure thread local storage Optional.of(testIdentifier) .filter(TestIdentifier::isTest) - .flatMap(tests::get) + .flatMap((TestIdentifier t) -> getTest(t)) .ifPresent(Allure.getLifecycle()::setCurrentTestCase); } @@ -333,7 +347,7 @@ protected Status getStatus(final Throwable throwable) { } private void startTestContainer(final TestIdentifier testIdentifier) { - final String uuid = containers.getOrCreate(testIdentifier); + final String uuid = getOrCreateContainer(testIdentifier); final TestResultContainer result = new TestResultContainer() .setUuid(uuid) .setName(testIdentifier.getDisplayName()); @@ -342,7 +356,7 @@ private void startTestContainer(final TestIdentifier testIdentifier) { } private void stopTestContainer(final TestIdentifier testIdentifier) { - final Optional maybeUuid = containers.get(testIdentifier); + final Optional maybeUuid = getContainer(testIdentifier); if (!maybeUuid.isPresent()) { return; } @@ -353,14 +367,14 @@ private void stopTestContainer(final TestIdentifier testIdentifier) { .orElseGet(Collections::emptySet) .stream() .filter(TestIdentifier::isTest) - .map(tests::get) + .map(this::getTest) .filter(Optional::isPresent) .map(Optional::get) .distinct() .collect(Collectors.toCollection(ArrayList::new)); if (testIdentifier.isTest()) { - tests.get(testIdentifier).ifPresent(children::add); + getTest(testIdentifier).ifPresent(children::add); } getLifecycle().updateTestContainer(uuid, container -> container.setChildren(children)); @@ -421,7 +435,7 @@ private void stopFixture(final Map keyValue) { @SuppressWarnings("PMD.NcssCount") private void startTestCase(final TestIdentifier testIdentifier) { - final String uuid = tests.getOrCreate(testIdentifier); + final String uuid = getOrCreateTest(testIdentifier); final Optional testSource = testIdentifier.getSource(); final Optional testMethod = testSource @@ -519,7 +533,7 @@ private void startTestCase(final TestIdentifier testIdentifier) { private void stopTestCase(final TestIdentifier testIdentifier, final Status status, final StatusDetails statusDetails) { - final Optional maybeUuid = tests.get(testIdentifier); + final Optional maybeUuid = getTest(testIdentifier); if (!maybeUuid.isPresent()) { return; } @@ -614,6 +628,22 @@ private Label getJUnitPlatformUniqueId(final TestIdentifier testIdentifier) { return label; } + private Optional getContainer(final TestIdentifier testIdentifier) { + return containers.get().get(testIdentifier); + } + + private String getOrCreateContainer(final TestIdentifier testIdentifier) { + return containers.get().getOrCreate(testIdentifier); + } + + private Optional getTest(final TestIdentifier testIdentifier) { + return tests.get().get(testIdentifier); + } + + private String getOrCreateTest(final TestIdentifier testIdentifier) { + return tests.get().getOrCreate(testIdentifier); + } + private static class Uuids { private final Map storage = new ConcurrentHashMap<>(); diff --git a/allure-junit-platform/src/test/java/io/qameta/allure/junitplatform/AllureJunitPlatformTest.java b/allure-junit-platform/src/test/java/io/qameta/allure/junitplatform/AllureJunitPlatformTest.java index 4c8ee1121..930c35764 100644 --- a/allure-junit-platform/src/test/java/io/qameta/allure/junitplatform/AllureJunitPlatformTest.java +++ b/allure-junit-platform/src/test/java/io/qameta/allure/junitplatform/AllureJunitPlatformTest.java @@ -16,7 +16,11 @@ package io.qameta.allure.junitplatform; import io.github.glytching.junit.extension.system.SystemProperty; +import io.qameta.allure.Allure; +import io.qameta.allure.AllureLifecycle; import io.qameta.allure.Issue; +import io.qameta.allure.aspects.AttachmentsAspects; +import io.qameta.allure.aspects.StepsAspects; import io.qameta.allure.junitplatform.features.AllureIdAnnotationSupport; import io.qameta.allure.junitplatform.features.BrokenInAfterAllTests; import io.qameta.allure.junitplatform.features.BrokenInBeforeAllTests; @@ -63,9 +67,16 @@ import io.qameta.allure.model.TestResult; import io.qameta.allure.test.AllureFeatures; import io.qameta.allure.test.AllureResults; +import io.qameta.allure.test.AllureResultsWriterStub; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.parallel.ResourceLock; +import org.junit.platform.engine.discovery.DiscoverySelectors; +import org.junit.platform.launcher.Launcher; +import org.junit.platform.launcher.LauncherDiscoveryRequest; +import org.junit.platform.launcher.core.LauncherConfig; +import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder; +import org.junit.platform.launcher.core.LauncherFactory; import java.nio.charset.StandardCharsets; import java.util.Collection; @@ -826,4 +837,55 @@ void shouldProcessAllureParameterReportingEvents() { tuple("masked not excluded", "masked not excluded value", Parameter.Mode.MASKED, false) ); } + + @Test + @AllureFeatures.Retries + void shouldSetDifferentUuidsInDifferentRuns() { + final AllureResultsWriterStub results = new AllureResultsWriterStub(); + final AllureLifecycle lifecycle = new AllureLifecycle(results); + + final LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request() + .filters(new AllurePostDiscoveryFilter(null)) + .selectors(DiscoverySelectors.selectClass(OneTest.class)) + .build(); + + final LauncherConfig config = LauncherConfig.builder() + .enableTestExecutionListenerAutoRegistration(false) + .addTestExecutionListeners(new AllureJunitPlatform(lifecycle)) + .enablePostDiscoveryFilterAutoRegistration(false) + .build(); + final Launcher launcher = LauncherFactory.create(config); + + final AllureLifecycle defaultLifecycle = Allure.getLifecycle(); + try { + Allure.setLifecycle(lifecycle); + StepsAspects.setLifecycle(lifecycle); + AttachmentsAspects.setLifecycle(lifecycle); + + // execute request twice + launcher.execute(request); + launcher.execute(request); + } finally { + Allure.setLifecycle(defaultLifecycle); + StepsAspects.setLifecycle(defaultLifecycle); + AttachmentsAspects.setLifecycle(defaultLifecycle); + } + + + final List testResults = results.getTestResults(); + assertThat(testResults) + .hasSize(2); + + final TestResult tr1 = testResults.get(0); + final TestResult tr2 = testResults.get(1); + + assertThat(tr1) + .extracting(TestResult::getUuid) + .isNotEqualTo(tr2.getUuid()); + + assertThat(tr1) + .extracting(TestResult::getHistoryId) + .isEqualTo(tr2.getHistoryId()); + + } } From b26edb05e40e8eddc7206b315d40f1d581bd8e52 Mon Sep 17 00:00:00 2001 From: qameta-ci Date: Thu, 17 Feb 2022 15:09:48 +0000 Subject: [PATCH 5/5] release 2.17.3 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 08b7c16d4..8a23e01c8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=2.18-SNAPSHOT +version=2.17.3 org.gradle.daemon=true org.gradle.parallel=true