From 8e1355abc03af4ca106d66c7f18e8a6059fb5b25 Mon Sep 17 00:00:00 2001 From: Dmitry Baev Date: Fri, 17 Jul 2026 16:14:49 +0100 Subject: [PATCH] Let custom grouping labels override framework defaults --- .../io/qameta/allure/citrus/AllureCitrus.java | 10 +- .../allure/citrus/AllureCitrusTest.java | 21 +++ .../cucumber7jvm/AllureCucumber7Jvm.java | 1 + .../allure/cucumber7jvm/LabelBuilder.java | 18 +- .../cucumber7jvm/AllureCucumber7JvmTest.java | 10 +- .../io/qameta/allure/AllureLifecycle.java | 72 +++++++- .../io/qameta/allure/AllureLifecycleTest.java | 169 ++++++++++++++++++ .../allure/jbehave5/AllureJbehave5.java | 4 +- .../junitplatform/AllureJunitPlatform.java | 4 +- .../AllureJunitPlatformTest.java | 59 ++++++ .../features/RuntimeSuiteLabelTest.java | 31 ++++ .../features/RuntimeSystemLabelsTest.java | 34 ++++ .../io/qameta/allure/junit4/AllureJunit4.java | 17 +- .../io/qameta/allure/karate/AllureKarate.java | 5 +- .../allure/scalatest/AllureScalatest.scala | 5 +- .../io/qameta/allure/spock2/AllureSpock2.java | 37 ++-- .../allure/spock2/AllureSpock2Test.java | 8 + .../io/qameta/allure/testng/AllureTestNg.java | 14 +- .../allure/testng/AllureTestNgTest.java | 74 ++++++++ .../BeforeMethodRuntimeSuiteLabel.java | 36 ++++ .../testng/samples/RuntimeSuiteLabel.java | 31 ++++ .../testng/samples/RuntimeSystemLabels.java | 34 ++++ .../before-method-runtime-suite-label.xml | 11 ++ .../resources/suites/runtime-suite-label.xml | 11 ++ .../suites/runtime-system-labels.xml | 11 ++ 25 files changed, 683 insertions(+), 44 deletions(-) create mode 100644 allure-junit-platform/src/test/java/io/qameta/allure/junitplatform/features/RuntimeSuiteLabelTest.java create mode 100644 allure-junit-platform/src/test/java/io/qameta/allure/junitplatform/features/RuntimeSystemLabelsTest.java create mode 100644 allure-testng/src/test/java/io/qameta/allure/testng/samples/BeforeMethodRuntimeSuiteLabel.java create mode 100644 allure-testng/src/test/java/io/qameta/allure/testng/samples/RuntimeSuiteLabel.java create mode 100644 allure-testng/src/test/java/io/qameta/allure/testng/samples/RuntimeSystemLabels.java create mode 100644 allure-testng/src/test/resources/suites/before-method-runtime-suite-label.xml create mode 100644 allure-testng/src/test/resources/suites/runtime-suite-label.xml create mode 100644 allure-testng/src/test/resources/suites/runtime-system-labels.xml diff --git a/allure-citrus/src/main/java/io/qameta/allure/citrus/AllureCitrus.java b/allure-citrus/src/main/java/io/qameta/allure/citrus/AllureCitrus.java index b9d7f93b6..a9ed3a86c 100644 --- a/allure-citrus/src/main/java/io/qameta/allure/citrus/AllureCitrus.java +++ b/allure-citrus/src/main/java/io/qameta/allure/citrus/AllureCitrus.java @@ -40,6 +40,7 @@ import java.lang.annotation.Repeatable; import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Method; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -57,6 +58,7 @@ import static io.qameta.allure.util.ResultsUtils.createLanguageLabel; import static io.qameta.allure.util.ResultsUtils.createParameter; import static io.qameta.allure.util.ResultsUtils.createSuiteLabel; +import static io.qameta.allure.util.ResultsUtils.createTestClassLabel; import static io.qameta.allure.util.ResultsUtils.createThreadLabel; import static io.qameta.allure.util.ResultsUtils.createTitlePath; import static io.qameta.allure.util.ResultsUtils.getProvidedLabels; @@ -241,6 +243,10 @@ private void startTest(final TestCase testCase) { testClass.map(this::getLabels).ifPresent(result.getLabels()::addAll); testClass.map(this::getLinks).ifPresent(result.getLinks()::addAll); + // the test is represented by a class only when the test case is class-backed (java dsl); + // the test method stays unknown — the test case name may be customized by the user + testClass.ifPresent(aClass -> result.getLabels().add(createTestClassLabel(aClass.getName()))); + result.getLabels().addAll( Arrays.asList( createHostLabel(), @@ -250,9 +256,10 @@ private void startTest(final TestCase testCase) { ) ); + final List