Skip to content

Commit 5fd6fce

Browse files
sidelnikovmikebaev
authored andcommitted
junit5 - handle disabled test (via #222)
1 parent 881bdb7 commit 5fd6fce

3 files changed

Lines changed: 62 additions & 2 deletions

File tree

allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public class AllureJunit5 implements TestExecutionListener {
3737
private static final Logger LOGGER = LoggerFactory.getLogger(AllureJunit5.class);
3838

3939
private static final String TAG = "tag";
40+
private static final String SUITE = "suite";
41+
private static final String PACKAGE = "package";
4042

4143

4244
private final ThreadLocal<String> tests
@@ -72,15 +74,49 @@ public void executionStarted(final TestIdentifier testIdentifier) {
7274

7375
methodSource.ifPresent(source -> {
7476
result.setDescription(getDescription(source));
75-
result.getLabels().add(new Label().withName("suite").withValue(getSuite(source)));
76-
result.getLabels().add(new Label().withName("package").withValue(source.getClassName()));
77+
result.getLabels().add(new Label().withName(SUITE).withValue(getSuite(source)));
78+
result.getLabels().add(new Label().withName(PACKAGE).withValue(source.getClassName()));
7779
});
7880

7981
getLifecycle().scheduleTestCase(result);
8082
getLifecycle().startTestCase(uuid);
8183
}
8284
}
8385

86+
@Override
87+
public void executionSkipped(final TestIdentifier testIdentifier, final String reason) {
88+
if (testIdentifier.isTest()) {
89+
final String uuid = tests.get();
90+
final TestResult result = new TestResult()
91+
.withUuid(uuid)
92+
.withName(testIdentifier.getDisplayName())
93+
.withLabels(getTags(testIdentifier))
94+
.withHistoryId(getHistoryId(testIdentifier))
95+
.withStage(Stage.RUNNING);
96+
97+
testIdentifier
98+
.getSource()
99+
.filter(MethodSource.class::isInstance)
100+
.map(MethodSource.class::cast)
101+
.ifPresent(source -> {
102+
result.setDescription(getDescription(source));
103+
result.getLabels().add(new Label().withName(SUITE).withValue(getSuite(source)));
104+
result.getLabels().add(new Label().withName(PACKAGE).withValue(source.getClassName()));
105+
});
106+
107+
getLifecycle().scheduleTestCase(result);
108+
getLifecycle().startTestCase(uuid);
109+
110+
tests.remove();
111+
getLifecycle().updateTestCase(uuid, testResult -> {
112+
testResult.setStage(Stage.FINISHED);
113+
testResult.setStatus(SKIPPED);
114+
});
115+
getLifecycle().stopTestCase(uuid);
116+
getLifecycle().writeTestCase(uuid);
117+
}
118+
}
119+
84120
@Override
85121
public void executionFinished(final TestIdentifier testIdentifier, final TestExecutionResult testExecutionResult) {
86122
if (testIdentifier.isTest()) {

allure-junit-platform/src/test/java/io/qameta/allure/junit5/AllureJunit5Test.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,17 @@ void shouldProcessJunit5Description() {
251251
.contains("Test description");
252252
}
253253

254+
@Test
255+
void shouldProcessDisabledTests() {
256+
runClasses(DisabledTests.class);
257+
258+
final List<TestResult> testResults = results.getTestResults();
259+
assertThat(testResults)
260+
.hasSize(1)
261+
.first()
262+
.hasFieldOrPropertyWithValue("status", Status.SKIPPED);
263+
}
264+
254265
private void runClasses(Class<?>... classes) {
255266
final ClassSelector[] classSelectors = Stream.of(classes)
256267
.map(DiscoverySelectors::selectClass)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.qameta.allure.junit5.features;
2+
3+
import org.junit.jupiter.api.Disabled;
4+
import org.junit.jupiter.api.Test;
5+
6+
public class DisabledTests {
7+
8+
@Test
9+
@Disabled
10+
void disabledByAnnotation() {
11+
12+
}
13+
}

0 commit comments

Comments
 (0)