Skip to content

Commit 83c4bc1

Browse files
committed
Treat all discovery issues triggered from Jupiter tests as critical
1 parent 9380195 commit 83c4bc1

File tree

2 files changed

+40
-6
lines changed

2 files changed

+40
-6
lines changed

jupiter-tests/src/test/java/org/junit/jupiter/engine/AbstractJupiterTestEngineTests.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313
import static org.junit.jupiter.api.Assertions.fail;
1414
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
1515
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectMethod;
16+
import static org.junit.platform.launcher.LauncherConstants.CRITICAL_DISCOVERY_ISSUE_SEVERITY_PROPERTY_NAME;
1617
import static org.junit.platform.launcher.LauncherConstants.STACKTRACE_PRUNING_ENABLED_PROPERTY_NAME;
1718
import static org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder.request;
1819
import static org.junit.platform.launcher.core.OutputDirectoryProviders.dummyOutputDirectoryProvider;
1920

2021
import java.util.function.Consumer;
2122

23+
import org.junit.platform.engine.DiscoveryIssue.Severity;
2224
import org.junit.platform.engine.DiscoverySelector;
2325
import org.junit.platform.engine.UniqueId;
2426
import org.junit.platform.launcher.LauncherDiscoveryRequest;
@@ -84,6 +86,7 @@ private static LauncherDiscoveryRequestBuilder defaultRequest() {
8486
return request() //
8587
.outputDirectoryProvider(dummyOutputDirectoryProvider()) //
8688
.configurationParameter(STACKTRACE_PRUNING_ENABLED_PROPERTY_NAME, String.valueOf(false)) //
89+
.configurationParameter(CRITICAL_DISCOVERY_ISSUE_SEVERITY_PROPERTY_NAME, Severity.INFO.name()) //
8790
.enableImplicitConfigurationParameters(false);
8891
}
8992

jupiter-tests/src/test/java/org/junit/jupiter/engine/NestedTestClassesTests.java

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,19 @@
1010

1111
package org.junit.jupiter.engine;
1212

13+
import static org.assertj.core.api.Assertions.assertThat;
1314
import static org.junit.jupiter.api.Assertions.assertAll;
1415
import static org.junit.jupiter.api.Assertions.assertEquals;
1516
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
1617
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectMethod;
1718
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectUniqueId;
19+
import static org.junit.platform.launcher.LauncherConstants.CRITICAL_DISCOVERY_ISSUE_SEVERITY_PROPERTY_NAME;
1820
import static org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder.request;
1921
import static org.junit.platform.testkit.engine.EventConditions.finishedWithFailure;
2022
import static org.junit.platform.testkit.engine.TestExecutionResultConditions.message;
2123

24+
import java.util.List;
25+
2226
import org.junit.jupiter.api.AfterEach;
2327
import org.junit.jupiter.api.Assertions;
2428
import org.junit.jupiter.api.BeforeEach;
@@ -27,7 +31,9 @@
2731
import org.junit.jupiter.engine.NestedTestClassesTests.OuterClass.NestedClass;
2832
import org.junit.jupiter.engine.NestedTestClassesTests.OuterClass.NestedClass.RecursiveNestedClass;
2933
import org.junit.jupiter.engine.NestedTestClassesTests.OuterClass.NestedClass.RecursiveNestedSiblingClass;
34+
import org.junit.platform.engine.DiscoveryIssue.Severity;
3035
import org.junit.platform.engine.TestDescriptor;
36+
import org.junit.platform.engine.support.descriptor.ClassSource;
3137
import org.junit.platform.launcher.LauncherDiscoveryRequest;
3238
import org.junit.platform.testkit.engine.EngineExecutionResults;
3339
import org.junit.platform.testkit.engine.Events;
@@ -95,7 +101,14 @@ void doublyNestedTestsAreExecuted() {
95101

96102
@Test
97103
void inheritedNestedTestsAreExecuted() {
98-
EngineExecutionResults executionResults = executeTestsForClass(TestCaseWithInheritedNested.class);
104+
var discoveryIssues = discoverTestsForClass(TestCaseWithInheritedNested.class).getDiscoveryIssues();
105+
assertThat(discoveryIssues).hasSize(1);
106+
assertThat(discoveryIssues.getFirst().source()) //
107+
.contains(ClassSource.from(InterfaceWithNestedClass.NestedInInterface.class));
108+
109+
var executionResults = executeTests(request -> request //
110+
.selectors(selectClass(TestCaseWithInheritedNested.class)) //
111+
.configurationParameter(CRITICAL_DISCOVERY_ISSUE_SEVERITY_PROPERTY_NAME, Severity.ERROR.name()));
99112
Events containers = executionResults.containerEvents();
100113
Events tests = executionResults.testEvents();
101114

@@ -109,7 +122,14 @@ void inheritedNestedTestsAreExecuted() {
109122

110123
@Test
111124
void extendedNestedTestsAreExecuted() {
112-
var executionResults = executeTestsForClass(TestCaseWithExtendedNested.class);
125+
var discoveryIssues = discoverTestsForClass(TestCaseWithExtendedNested.class).getDiscoveryIssues();
126+
assertThat(discoveryIssues).hasSize(1);
127+
assertThat(discoveryIssues.getFirst().source()) //
128+
.contains(ClassSource.from(InterfaceWithNestedClass.NestedInInterface.class));
129+
130+
var executionResults = executeTests(request -> request //
131+
.selectors(selectClass(TestCaseWithExtendedNested.class)) //
132+
.configurationParameter(CRITICAL_DISCOVERY_ISSUE_SEVERITY_PROPERTY_NAME, Severity.ERROR.name()));
113133
Events containers = executionResults.containerEvents();
114134
Events tests = executionResults.testEvents();
115135

@@ -123,10 +143,21 @@ void extendedNestedTestsAreExecuted() {
123143

124144
@Test
125145
void deeplyNestedInheritedMethodsAreExecutedWhenSelectedViaUniqueId() {
126-
var executionResults = executeTests(selectUniqueId(
127-
"[engine:junit-jupiter]/[class:org.junit.jupiter.engine.NestedTestClassesTests$TestCaseWithExtendedNested]/[nested-class:ConcreteInner1]/[nested-class:NestedInAbstractClass]/[nested-class:SecondLevelInherited]/[method:test()]"),
146+
var selectors = List.of( //
147+
selectUniqueId(
148+
"[engine:junit-jupiter]/[class:org.junit.jupiter.engine.NestedTestClassesTests$TestCaseWithExtendedNested]/[nested-class:ConcreteInner1]/[nested-class:NestedInAbstractClass]/[nested-class:SecondLevelInherited]/[method:test()]"),
128149
selectUniqueId(
129150
"[engine:junit-jupiter]/[class:org.junit.jupiter.engine.NestedTestClassesTests$TestCaseWithExtendedNested]/[nested-class:ConcreteInner2]/[nested-class:NestedInAbstractClass]/[nested-class:SecondLevelInherited]/[method:test()]"));
151+
152+
var discoveryIssues = discoverTests(request -> request.selectors(selectors)).getDiscoveryIssues();
153+
assertThat(discoveryIssues).hasSize(1);
154+
assertThat(discoveryIssues.getFirst().source()) //
155+
.contains(ClassSource.from(InterfaceWithNestedClass.NestedInInterface.class));
156+
157+
var executionResults = executeTests(request -> request //
158+
.selectors(selectors) //
159+
.configurationParameter(CRITICAL_DISCOVERY_ISSUE_SEVERITY_PROPERTY_NAME, Severity.ERROR.name()));
160+
130161
Events containers = executionResults.containerEvents();
131162
Events tests = executionResults.testEvents();
132163

@@ -281,7 +312,7 @@ void failing() {
281312

282313
interface InterfaceWithNestedClass {
283314

284-
@SuppressWarnings("JUnitMalformedDeclaration")
315+
@SuppressWarnings({ "JUnitMalformedDeclaration", "NewClassNamingConvention" })
285316
@Nested
286317
class NestedInInterface {
287318

@@ -333,7 +364,7 @@ class ConcreteInner2 extends AbstractSuperClass {
333364
static class AbstractOuterClass {
334365
}
335366

336-
@SuppressWarnings("JUnitMalformedDeclaration")
367+
@SuppressWarnings({ "JUnitMalformedDeclaration", "NewClassNamingConvention" })
337368
static class OuterClass extends AbstractOuterClass {
338369

339370
@Test

0 commit comments

Comments
 (0)