Skip to content

Commit 9f69379

Browse files
authored
add support for provided labels for cucumber-jvm integrations (via #674)
1 parent 2e38ce2 commit 9f69379

12 files changed

Lines changed: 124 additions & 0 deletions

File tree

allure-cucumber-jvm/src/main/java/io/qameta/allure/cucumberjvm/LabelBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ class LabelBuilder {
112112
}
113113
}
114114

115+
getScenarioLabels().addAll(ResultsUtils.getProvidedLabels());
115116
getScenarioLabels().addAll(Arrays.asList(
116117
createHostLabel(),
117118
createThreadLabel(),

allure-cucumber-jvm/src/test/java/io/qameta/allure/cucumberjvm/AllureCucumberJvmTest.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.junit.jupiter.api.Disabled;
4242
import org.junit.jupiter.api.Test;
4343
import org.junit.jupiter.api.extension.ExtendWith;
44+
import org.junit.jupiter.api.parallel.ResourceLock;
4445

4546
import java.nio.charset.StandardCharsets;
4647
import java.time.Instant;
@@ -55,6 +56,8 @@
5556
import static java.util.Objects.nonNull;
5657
import static org.assertj.core.api.Assertions.assertThat;
5758
import static org.assertj.core.api.Assertions.tuple;
59+
import static org.junit.jupiter.api.parallel.ResourceAccessMode.READ_WRITE;
60+
import static org.junit.jupiter.api.parallel.Resources.SYSTEM_PROPERTIES;
5861

5962
/**
6063
* @author charlie (Dmitry Baev).
@@ -404,6 +407,22 @@ void shouldUseUuid() {
404407
.allMatch(uuid -> nonNull(uuid) && uuid.matches("[\\-a-z0-9]+"), "UUID");
405408
}
406409

410+
@ResourceLock(value = SYSTEM_PROPERTIES, mode = READ_WRITE)
411+
@SystemProperty(name = "allure.label.x-provided", value = "cucumberjvm1-test-provided")
412+
@Test
413+
void shouldSupportProvidedLabels() {
414+
final AllureResults results = runFeature("features/simple.feature");
415+
416+
final List<TestResult> testResults = results.getTestResults();
417+
assertThat(testResults)
418+
.hasSize(1)
419+
.flatExtracting(TestResult::getLabels)
420+
.extracting(Label::getName, Label::getValue)
421+
.contains(
422+
tuple("x-provided", "cucumberjvm1-test-provided")
423+
);
424+
}
425+
407426
private AllureResults runFeature(final String featureResource,
408427
final String... moreOptions) {
409428
final AllureResultsWriterStub writer = new AllureResultsWriterStub();

allure-cucumber2-jvm/src/main/java/io/qameta/allure/cucumber2jvm/LabelBuilder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import gherkin.pickles.PickleTag;
2121
import io.qameta.allure.model.Label;
2222
import io.qameta.allure.model.Link;
23+
import io.qameta.allure.util.ResultsUtils;
2324
import org.slf4j.Logger;
2425
import org.slf4j.LoggerFactory;
2526

@@ -114,6 +115,7 @@ class LabelBuilder {
114115
}
115116
}
116117

118+
getScenarioLabels().addAll(ResultsUtils.getProvidedLabels());
117119
getScenarioLabels().addAll(Arrays.asList(
118120
createHostLabel(),
119121
createThreadLabel(),

allure-cucumber2-jvm/src/test/java/io/qameta/allure/cucumber2jvm/AllureCucumber2JvmTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import org.apache.commons.io.IOUtils;
4646
import org.junit.jupiter.api.Test;
4747
import org.junit.jupiter.api.extension.ExtendWith;
48+
import org.junit.jupiter.api.parallel.ResourceLock;
4849

4950
import java.io.IOException;
5051
import java.io.InputStream;
@@ -61,6 +62,8 @@
6162
import static java.util.Objects.nonNull;
6263
import static org.assertj.core.api.Assertions.assertThat;
6364
import static org.assertj.core.api.Assertions.tuple;
65+
import static org.junit.jupiter.api.parallel.ResourceAccessMode.READ_WRITE;
66+
import static org.junit.jupiter.api.parallel.Resources.SYSTEM_PROPERTIES;
6467

6568
/**
6669
* @author charlie (Dmitry Baev).
@@ -555,6 +558,21 @@ void shouldSetStatusFailedOnFailedAndUndefinedSteps() {
555558
.containsExactlyInAnyOrder(Status.FAILED);
556559
}
557560

561+
@ResourceLock(value = SYSTEM_PROPERTIES, mode = READ_WRITE)
562+
@SystemProperty(name = "allure.label.x-provided", value = "cucumberjvm2-test-provided")
563+
@Test
564+
void shouldSupportProvidedLabels() {
565+
final AllureResults results = runFeature("features/simple.feature");
566+
567+
final List<TestResult> testResults = results.getTestResults();
568+
assertThat(testResults)
569+
.hasSize(1)
570+
.flatExtracting(TestResult::getLabels)
571+
.extracting(Label::getName, Label::getValue)
572+
.contains(
573+
tuple("x-provided", "cucumberjvm2-test-provided")
574+
);
575+
}
558576

559577
private String readResource(final String resourceName) {
560578
try (InputStream is = currentThread().getContextClassLoader().getResourceAsStream(resourceName)) {

allure-cucumber3-jvm/src/main/java/io/qameta/allure/cucumber3jvm/LabelBuilder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import gherkin.pickles.PickleTag;
2121
import io.qameta.allure.model.Label;
2222
import io.qameta.allure.model.Link;
23+
import io.qameta.allure.util.ResultsUtils;
2324
import org.slf4j.Logger;
2425
import org.slf4j.LoggerFactory;
2526

@@ -114,6 +115,7 @@ class LabelBuilder {
114115
}
115116
}
116117

118+
getScenarioLabels().addAll(ResultsUtils.getProvidedLabels());
117119
getScenarioLabels().addAll(Arrays.asList(
118120
createHostLabel(),
119121
createThreadLabel(),

allure-cucumber3-jvm/src/test/java/io/qameta/allure/cucumber3jvm/AllureCucumber3JvmTest.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import org.apache.commons.io.IOUtils;
4646
import org.junit.jupiter.api.Test;
4747
import org.junit.jupiter.api.extension.ExtendWith;
48+
import org.junit.jupiter.api.parallel.ResourceLock;
4849

4950
import java.io.IOException;
5051
import java.io.InputStream;
@@ -61,6 +62,8 @@
6162
import static java.util.Objects.nonNull;
6263
import static org.assertj.core.api.Assertions.assertThat;
6364
import static org.assertj.core.api.Assertions.tuple;
65+
import static org.junit.jupiter.api.parallel.ResourceAccessMode.READ_WRITE;
66+
import static org.junit.jupiter.api.parallel.Resources.SYSTEM_PROPERTIES;
6467

6568
/**
6669
* @author charlie (Dmitry Baev).
@@ -568,6 +571,22 @@ void shouldSetStatusFailedOnFailedAndUndefinedSteps() {
568571
.containsExactlyInAnyOrder(Status.FAILED);
569572
}
570573

574+
@ResourceLock(value = SYSTEM_PROPERTIES, mode = READ_WRITE)
575+
@SystemProperty(name = "allure.label.x-provided", value = "cucumberjvm3-test-provided")
576+
@Test
577+
void shouldSupportProvidedLabels() {
578+
final AllureResults results = runFeature("features/simple.feature");
579+
580+
final List<TestResult> testResults = results.getTestResults();
581+
assertThat(testResults)
582+
.hasSize(1)
583+
.flatExtracting(TestResult::getLabels)
584+
.extracting(Label::getName, Label::getValue)
585+
.contains(
586+
tuple("x-provided", "cucumberjvm3-test-provided")
587+
);
588+
}
589+
571590
private String readResource(final String resourceName) {
572591
try (InputStream is = currentThread().getContextClassLoader().getResourceAsStream(resourceName)) {
573592
return IOUtils.toString(is, StandardCharsets.UTF_8);

allure-cucumber4-jvm/src/main/java/io/qameta/allure/cucumber4jvm/LabelBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ class LabelBuilder {
115115
final String featureName = feature.getName();
116116
final String uri = scenario.getUri();
117117

118+
getScenarioLabels().addAll(ResultsUtils.getProvidedLabels());
118119
getScenarioLabels().addAll(Arrays.asList(
119120
createHostLabel(),
120121
createThreadLabel(),

allure-cucumber4-jvm/src/test/java/io/qameta/allure/cucumber4jvm/AllureCucumber4JvmTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import org.apache.commons.io.IOUtils;
5050
import org.junit.jupiter.api.Test;
5151
import org.junit.jupiter.api.extension.ExtendWith;
52+
import org.junit.jupiter.api.parallel.ResourceLock;
5253

5354
import java.io.IOException;
5455
import java.io.InputStream;
@@ -70,6 +71,8 @@
7071
import static java.lang.Thread.currentThread;
7172
import static org.assertj.core.api.Assertions.assertThat;
7273
import static org.assertj.core.api.Assertions.tuple;
74+
import static org.junit.jupiter.api.parallel.ResourceAccessMode.READ_WRITE;
75+
import static org.junit.jupiter.api.parallel.Resources.SYSTEM_PROPERTIES;
7376

7477
/**
7578
* @author charlie (Dmitry Baev).
@@ -730,6 +733,23 @@ void shouldHandleAmbigiousStepsExceptions() {
730733
);
731734
}
732735

736+
@ResourceLock(value = SYSTEM_PROPERTIES, mode = READ_WRITE)
737+
@SystemProperty(name = "allure.label.x-provided", value = "cucumberjvm4-test-provided")
738+
@Test
739+
void shouldSupportProvidedLabels() {
740+
final AllureResultsWriterStub results = new AllureResultsWriterStub();
741+
runFeature(results, "features/simple.feature");
742+
743+
final List<TestResult> testResults = results.getTestResults();
744+
assertThat(testResults)
745+
.hasSize(1)
746+
.flatExtracting(TestResult::getLabels)
747+
.extracting(Label::getName, Label::getValue)
748+
.contains(
749+
tuple("x-provided", "cucumberjvm4-test-provided")
750+
);
751+
}
752+
733753
private byte runFeature(final AllureResultsWriterStub writer,
734754
final String featureResource,
735755
final String... moreOptions) {

allure-cucumber5-jvm/src/main/java/io/qameta/allure/cucumber5jvm/LabelBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ class LabelBuilder {
112112
final String featureName = feature.getName();
113113
final URI uri = scenario.getUri();
114114

115+
getScenarioLabels().addAll(ResultsUtils.getProvidedLabels());
115116
getScenarioLabels().addAll(Arrays.asList(
116117
createHostLabel(),
117118
createThreadLabel(),

allure-cucumber5-jvm/src/test/java/io/qameta/allure/cucumber5jvm/AllureCucumber5JvmTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import io.qameta.allure.test.AllureResultsWriterStub;
4242
import org.junit.jupiter.api.Test;
4343
import org.junit.jupiter.api.extension.ExtendWith;
44+
import org.junit.jupiter.api.parallel.ResourceLock;
4445

4546
import java.nio.charset.StandardCharsets;
4647
import java.time.Clock;
@@ -55,6 +56,8 @@
5556

5657
import static org.assertj.core.api.Assertions.assertThat;
5758
import static org.assertj.core.api.Assertions.tuple;
59+
import static org.junit.jupiter.api.parallel.ResourceAccessMode.READ_WRITE;
60+
import static org.junit.jupiter.api.parallel.Resources.SYSTEM_PROPERTIES;
5861

5962
/**
6063
* @author charlie (Dmitry Baev).
@@ -713,6 +716,23 @@ void shouldHandleAmbigiousStepsExceptions() {
713716
);
714717
}
715718

719+
@ResourceLock(value = SYSTEM_PROPERTIES, mode = READ_WRITE)
720+
@SystemProperty(name = "allure.label.x-provided", value = "cucumberjvm5-test-provided")
721+
@Test
722+
void shouldSupportProvidedLabels() {
723+
final AllureResultsWriterStub results = new AllureResultsWriterStub();
724+
runFeature(results, "features/simple.feature");
725+
726+
final List<TestResult> testResults = results.getTestResults();
727+
assertThat(testResults)
728+
.hasSize(1)
729+
.flatExtracting(TestResult::getLabels)
730+
.extracting(Label::getName, Label::getValue)
731+
.contains(
732+
tuple("x-provided", "cucumberjvm5-test-provided")
733+
);
734+
}
735+
716736
private byte runFeature(final AllureResultsWriterStub writer,
717737
final String featureResource,
718738
final String... moreOptions) {

0 commit comments

Comments
 (0)