Skip to content

Commit 9d6a469

Browse files
authored
Add titlePath as the default test hierarchy path (via #1271)
1 parent 7ff0fae commit 9d6a469

31 files changed

Lines changed: 384 additions & 2 deletions

File tree

allure-citrus/src/main/java/io/qameta/allure/citrus/AllureCitrus.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
import static io.qameta.allure.util.ResultsUtils.createParameter;
6060
import static io.qameta.allure.util.ResultsUtils.createSuiteLabel;
6161
import static io.qameta.allure.util.ResultsUtils.createThreadLabel;
62+
import static io.qameta.allure.util.ResultsUtils.createTitlePath;
6263
import static io.qameta.allure.util.ResultsUtils.getProvidedLabels;
6364

6465
/**
@@ -161,16 +162,19 @@ public void onTestActionSkipped(final TestCase testCase, final TestAction testAc
161162

162163
private void startTestCase(final TestCase testCase) {
163164
final String uuid = createUuid(testCase);
165+
final Optional<? extends Class<?>> testClass = Optional.ofNullable(testCase.getTestClass());
164166

165167
final TestResult result = new TestResult()
166168
.setUuid(uuid)
167169
.setName(testCase.getName())
170+
.setTitlePath(testClass
171+
.map(ResultsUtils::createTitlePathFromJavaClass)
172+
.orElseGet(() -> createTitlePath(testCase.getName())))
168173
.setStage(Stage.RUNNING);
169174

170175
result.getLabels().addAll(getProvidedLabels());
171176

172177

173-
final Optional<? extends Class<?>> testClass = Optional.ofNullable(testCase.getTestClass());
174178
testClass.map(this::getLabels).ifPresent(result.getLabels()::addAll);
175179
testClass.map(this::getLinks).ifPresent(result.getLinks()::addAll);
176180

allure-citrus/src/test/java/io/qameta/allure/citrus/AllureCitrusTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ void shouldSetName() {
6161
assertThat(results.getTestResults())
6262
.extracting(TestResult::getName)
6363
.containsExactly("Simple test");
64+
assertThat(results.getTestResults().get(0).getTitlePath())
65+
.containsExactly("com", "consol", "citrus", "dsl", "design", "DefaultTestDesigner");
6466
}
6567

6668
@AllureFeatures.PassedTests

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@
7171

7272
import static cucumber.api.HookType.Before;
7373
import static io.qameta.allure.util.ResultsUtils.createParameter;
74+
import static io.qameta.allure.util.ResultsUtils.createTitlePath;
75+
import static io.qameta.allure.util.ResultsUtils.createTitlePathFromSourcePath;
7476
import static io.qameta.allure.util.ResultsUtils.getStatus;
7577
import static io.qameta.allure.util.ResultsUtils.getStatusDetails;
7678
import static io.qameta.allure.util.ResultsUtils.md5;
@@ -156,11 +158,15 @@ private void handleTestCaseStarted(final TestCaseStarted event) {
156158
final String testCaseUuid = testCaseUuids
157159
.computeIfAbsent(testCase, tc -> UUID.randomUUID().toString());
158160

161+
final List<String> titlePath = createTitlePathFromSourcePath(getTestCaseUri(testCase));
162+
titlePath.addAll(createTitlePath(feature.getName()));
163+
159164
final TestResult result = new TestResult()
160165
.setUuid(testCaseUuid)
161166
.setTestCaseId(getTestCaseId(testCase))
162167
.setHistoryId(getHistoryId(testCase))
163168
.setFullName(fullName)
169+
.setTitlePath(titlePath)
164170
.setName(name)
165171
.setLabels(labelBuilder.getScenarioLabels())
166172
.setLinks(labelBuilder.getScenarioLinks());

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ void shouldSetName() {
7777
assertThat(testResults)
7878
.extracting(TestResult::getName)
7979
.containsExactlyInAnyOrder("Add a to b");
80+
assertThat(testResults.get(0).getTitlePath())
81+
.containsExactly("src", "test", "resources", "features", "simple.feature", "Simple feature");
8082
}
8183

8284
@AllureFeatures.PassedTests

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@
6767
import java.util.stream.Stream;
6868

6969
import static io.qameta.allure.util.ResultsUtils.createParameter;
70+
import static io.qameta.allure.util.ResultsUtils.createTitlePath;
71+
import static io.qameta.allure.util.ResultsUtils.createTitlePathFromSourcePath;
7072
import static io.qameta.allure.util.ResultsUtils.getStatus;
7173
import static io.qameta.allure.util.ResultsUtils.getStatusDetails;
7274
import static io.qameta.allure.util.ResultsUtils.md5;
@@ -150,11 +152,15 @@ private void handleTestCaseStarted(final TestCaseStarted event) {
150152

151153
final String testCaseUuid = testCase.getId().toString();
152154

155+
final List<String> titlePath = createTitlePathFromSourcePath(getTestCaseUri(testCase));
156+
titlePath.addAll(createTitlePath(feature.getName()));
157+
153158
final TestResult result = new TestResult()
154159
.setUuid(testCaseUuid)
155160
.setTestCaseId(getTestCaseId(testCase))
156161
.setHistoryId(getHistoryId(testCase))
157162
.setFullName(fullName)
163+
.setTitlePath(titlePath)
158164
.setName(name)
159165
.setLabels(labelBuilder.getScenarioLabels())
160166
.setLinks(labelBuilder.getScenarioLinks());

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ void shouldSetName() {
8080
assertThat(testResults)
8181
.extracting(TestResult::getName)
8282
.containsExactlyInAnyOrder("Add a to b");
83+
assertThat(testResults.get(0).getTitlePath())
84+
.containsExactly("src", "test", "resources", "features", "simple.feature", "Simple feature");
8385
}
8486

8587
@AllureFeatures.PassedTests

allure-cucumber6-jvm/src/main/java/io/qameta/allure/cucumber6jvm/AllureCucumber6Jvm.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@
6565
import java.util.stream.Stream;
6666

6767
import static io.qameta.allure.util.ResultsUtils.createParameter;
68+
import static io.qameta.allure.util.ResultsUtils.createTitlePath;
69+
import static io.qameta.allure.util.ResultsUtils.createTitlePathFromSourcePath;
6870
import static io.qameta.allure.util.ResultsUtils.getStatus;
6971
import static io.qameta.allure.util.ResultsUtils.getStatusDetails;
7072
import static io.qameta.allure.util.ResultsUtils.md5;
@@ -145,11 +147,15 @@ private void handleTestCaseStarted(final TestCaseStarted event) {
145147

146148
final String testCaseUuid = testCase.getId().toString();
147149

150+
final List<String> titlePath = createTitlePathFromSourcePath(getTestCaseUri(testCase));
151+
titlePath.addAll(createTitlePath(feature.getName()));
152+
148153
final TestResult result = new TestResult()
149154
.setUuid(testCaseUuid)
150155
.setTestCaseId(getTestCaseId(testCase))
151156
.setHistoryId(getHistoryId(testCase))
152157
.setFullName(fullName)
158+
.setTitlePath(titlePath)
153159
.setName(name)
154160
.setLabels(labelBuilder.getScenarioLabels())
155161
.setLinks(labelBuilder.getScenarioLinks());

allure-cucumber6-jvm/src/test/java/io/qameta/allure/cucumber6jvm/AllureCucumber6JvmTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ void shouldSetName() {
8080
assertThat(testResults)
8181
.extracting(TestResult::getName)
8282
.containsExactlyInAnyOrder("Add a to b");
83+
assertThat(testResults.get(0).getTitlePath())
84+
.containsExactly("src", "test", "resources", "features", "simple.feature", "Simple feature");
8385
}
8486

8587
@AllureFeatures.PassedTests

allure-cucumber7-jvm/src/main/java/io/qameta/allure/cucumber7jvm/AllureCucumber7Jvm.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@
6666
import java.util.stream.Stream;
6767

6868
import static io.qameta.allure.util.ResultsUtils.createParameter;
69+
import static io.qameta.allure.util.ResultsUtils.createTitlePath;
70+
import static io.qameta.allure.util.ResultsUtils.createTitlePathFromSourcePath;
6971
import static io.qameta.allure.util.ResultsUtils.getStatus;
7072
import static io.qameta.allure.util.ResultsUtils.getStatusDetails;
7173
import static io.qameta.allure.util.ResultsUtils.md5;
@@ -146,11 +148,15 @@ private void handleTestCaseStarted(final TestCaseStarted event) {
146148

147149
final String testCaseUuid = testCase.getId().toString();
148150

151+
final List<String> titlePath = createTitlePathFromSourcePath(getTestCaseUri(testCase));
152+
titlePath.addAll(createTitlePath(feature.getName()));
153+
149154
final TestResult result = new TestResult()
150155
.setUuid(testCaseUuid)
151156
.setTestCaseId(getTestCaseId(testCase))
152157
.setHistoryId(getHistoryId(testCase))
153158
.setFullName(fullName)
159+
.setTitlePath(titlePath)
154160
.setName(name)
155161
.setLabels(labelBuilder.getScenarioLabels())
156162
.setLinks(labelBuilder.getScenarioLinks());

allure-cucumber7-jvm/src/test/java/io/qameta/allure/cucumber7jvm/AllureCucumber7JvmTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ void shouldSetName() {
8080
assertThat(testResults)
8181
.extracting(TestResult::getName)
8282
.containsExactlyInAnyOrder("Add a to b");
83+
assertThat(testResults.get(0).getTitlePath())
84+
.containsExactly("src", "test", "resources", "features", "simple.feature", "Simple feature");
8385
}
8486

8587
@AllureFeatures.PassedTests

0 commit comments

Comments
 (0)