Skip to content

Commit

Permalink
Simplify engine integration tests in junit-jupiter-engine module
Browse files Browse the repository at this point in the history
  • Loading branch information
sbrannen committed Oct 21, 2018
1 parent 7c15770 commit aab01a7
Show file tree
Hide file tree
Showing 32 changed files with 191 additions and 346 deletions.
Expand Up @@ -23,6 +23,7 @@
import org.junit.platform.engine.UniqueId; import org.junit.platform.engine.UniqueId;
import org.junit.platform.launcher.LauncherDiscoveryRequest; import org.junit.platform.launcher.LauncherDiscoveryRequest;
import org.junit.platform.testkit.ExecutionRecorder; import org.junit.platform.testkit.ExecutionRecorder;
import org.junit.platform.testkit.ExecutionResults;


/** /**
* Abstract base class for tests involving the {@link JupiterTestEngine}. * Abstract base class for tests involving the {@link JupiterTestEngine}.
Expand All @@ -33,19 +34,19 @@ public abstract class AbstractJupiterTestEngineTests {


private final JupiterTestEngine engine = new JupiterTestEngine(); private final JupiterTestEngine engine = new JupiterTestEngine();


protected ExecutionRecorder executeTestsForClass(Class<?> testClass) { protected ExecutionResults executeTestsForClass(Class<?> testClass) {
return executeTests(selectClass(testClass)); return executeTests(selectClass(testClass));
} }


protected ExecutionRecorder executeTests(DiscoverySelector... selectors) { protected ExecutionResults executeTests(DiscoverySelector... selectors) {
return executeTests(request().selectors(selectors).build()); return executeTests(request().selectors(selectors).build());
} }


protected ExecutionRecorder executeTests(LauncherDiscoveryRequest request) { protected ExecutionResults executeTests(LauncherDiscoveryRequest request) {
TestDescriptor testDescriptor = discoverTests(request); TestDescriptor testDescriptor = discoverTests(request);
ExecutionRecorder executionRecorder = new ExecutionRecorder(); ExecutionRecorder executionRecorder = new ExecutionRecorder();
engine.execute(new ExecutionRequest(testDescriptor, executionRecorder, request.getConfigurationParameters())); engine.execute(new ExecutionRequest(testDescriptor, executionRecorder, request.getConfigurationParameters()));
return executionRecorder; return executionRecorder.getExecutionResults();
} }


protected TestDescriptor discoverTests(DiscoverySelector... selectors) { protected TestDescriptor discoverTests(DiscoverySelector... selectors) {
Expand Down
Expand Up @@ -31,8 +31,7 @@ class AtypicalJvmMethodNameTests extends AbstractJupiterTestEngineTests {


@Test @Test
void kotlinTestWithMethodNameContainingSpecialCharacters() { void kotlinTestWithMethodNameContainingSpecialCharacters() {
ExecutionResults executionResults = executeTestsForClass( ExecutionResults executionResults = executeTestsForClass(ArbitraryNamingKotlinTestCase.class);
ArbitraryNamingKotlinTestCase.class).getExecutionResults();
assertThat(executionResults.getTestsStartedCount()).isEqualTo(2); assertThat(executionResults.getTestsStartedCount()).isEqualTo(2);


TestDescriptor testDescriptor1 = executionResults.getTestsSuccessfulEvents().get(0).getTestDescriptor(); TestDescriptor testDescriptor1 = executionResults.getTestsSuccessfulEvents().get(0).getTestDescriptor();
Expand Down
Expand Up @@ -36,7 +36,7 @@ class BeforeAllAndAfterAllComposedAnnotationTests extends AbstractJupiterTestEng


@Test @Test
void beforeAllAndAfterAllAsMetaAnnotations() { void beforeAllAndAfterAllAsMetaAnnotations() {
ExecutionResults executionResults = executeTestsForClass(TestCase.class).getExecutionResults(); ExecutionResults executionResults = executeTestsForClass(TestCase.class);


assertEquals(1, executionResults.getTestsStartedCount(), "# tests started"); assertEquals(1, executionResults.getTestsStartedCount(), "# tests started");
assertEquals(1, executionResults.getTestsSuccessfulCount(), "# tests succeeded"); assertEquals(1, executionResults.getTestsSuccessfulCount(), "# tests succeeded");
Expand Down
Expand Up @@ -36,7 +36,7 @@ class BeforeEachAndAfterEachComposedAnnotationTests extends AbstractJupiterTestE


@Test @Test
void beforeEachAndAfterEachAsMetaAnnotations() { void beforeEachAndAfterEachAsMetaAnnotations() {
ExecutionResults executionResults = executeTestsForClass(TestCase.class).getExecutionResults(); ExecutionResults executionResults = executeTestsForClass(TestCase.class);


assertEquals(1, executionResults.getTestsStartedCount(), "# tests started"); assertEquals(1, executionResults.getTestsStartedCount(), "# tests started");
assertEquals(1, executionResults.getTestsSuccessfulCount(), "# tests succeeded"); assertEquals(1, executionResults.getTestsSuccessfulCount(), "# tests succeeded");
Expand Down
Expand Up @@ -58,7 +58,7 @@ void resetFlags() {
void executeTestCaseWithDefaultMethodFromInterfaceSelectedByFullyQualifedMethodName() { void executeTestCaseWithDefaultMethodFromInterfaceSelectedByFullyQualifedMethodName() {
String fqmn = TestCaseWithDefaultMethod.class.getName() + "#test"; String fqmn = TestCaseWithDefaultMethod.class.getName() + "#test";
LauncherDiscoveryRequest request = request().selectors(selectMethod(fqmn)).build(); LauncherDiscoveryRequest request = request().selectors(selectMethod(fqmn)).build();
ExecutionResults executionResults = executeTests(request).getExecutionResults(); ExecutionResults executionResults = executeTests(request);


// @formatter:off // @formatter:off
assertAll( assertAll(
Expand All @@ -76,7 +76,7 @@ void executeTestCaseWithDefaultMethodFromInterfaceSelectedByFullyQualifedMethodN
void executeTestCaseWithDefaultMethodFromGenericInterfaceSelectedByFullyQualifedMethodName() { void executeTestCaseWithDefaultMethodFromGenericInterfaceSelectedByFullyQualifedMethodName() {
String fqmn = GenericTestCaseWithDefaultMethod.class.getName() + "#test(" + Long.class.getName() + ")"; String fqmn = GenericTestCaseWithDefaultMethod.class.getName() + "#test(" + Long.class.getName() + ")";
LauncherDiscoveryRequest request = request().selectors(selectMethod(fqmn)).build(); LauncherDiscoveryRequest request = request().selectors(selectMethod(fqmn)).build();
ExecutionResults executionResults = executeTests(request).getExecutionResults(); ExecutionResults executionResults = executeTests(request);


// @formatter:off // @formatter:off
assertAll( assertAll(
Expand All @@ -96,7 +96,7 @@ void executeTestCaseWithOverloadedMethodNextToGenericDefaultMethodSelectedByFull


String fqmn = GenericTestCaseWithDefaultMethod.class.getName() + "#test(" + Double.class.getName() + ")"; String fqmn = GenericTestCaseWithDefaultMethod.class.getName() + "#test(" + Double.class.getName() + ")";
LauncherDiscoveryRequest request = request().selectors(selectMethod(fqmn)).build(); LauncherDiscoveryRequest request = request().selectors(selectMethod(fqmn)).build();
ExecutionResults executionResults = executeTests(request).getExecutionResults(); ExecutionResults executionResults = executeTests(request);


// @formatter:off // @formatter:off
assertAll( assertAll(
Expand All @@ -115,7 +115,7 @@ void executeTestCaseWithOverloadedMethodNextToGenericDefaultMethodSelectedByFull
void executeTestCaseWithOverloadedMethodNextToGenericDefaultMethodSelectedByClass() { void executeTestCaseWithOverloadedMethodNextToGenericDefaultMethodSelectedByClass() {
Class<?> clazz = GenericTestCaseWithDefaultMethod.class; Class<?> clazz = GenericTestCaseWithDefaultMethod.class;
LauncherDiscoveryRequest request = request().selectors(selectClass(clazz)).build(); LauncherDiscoveryRequest request = request().selectors(selectClass(clazz)).build();
ExecutionResults executionResults = executeTests(request).getExecutionResults(); ExecutionResults executionResults = executeTests(request);


// @formatter:off // @formatter:off
assertAll( assertAll(
Expand All @@ -134,7 +134,7 @@ void executeTestCaseWithOverloadedMethodNextToGenericDefaultMethodSelectedByClas
void executeTestCaseWithOverriddenGenericDefaultMethodSelectedByClass() { void executeTestCaseWithOverriddenGenericDefaultMethodSelectedByClass() {
Class<?> clazz = GenericTestCaseWithOverriddenDefaultMethod.class; Class<?> clazz = GenericTestCaseWithOverriddenDefaultMethod.class;
LauncherDiscoveryRequest request = request().selectors(selectClass(clazz)).build(); LauncherDiscoveryRequest request = request().selectors(selectClass(clazz)).build();
ExecutionResults executionResults = executeTests(request).getExecutionResults(); ExecutionResults executionResults = executeTests(request);


// @formatter:off // @formatter:off
assertAll( assertAll(
Expand Down
Expand Up @@ -12,12 +12,9 @@


import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail; import static org.junit.jupiter.api.Assertions.fail;
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
import static org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder.request;


import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.platform.launcher.LauncherDiscoveryRequest;
import org.junit.platform.testkit.ExecutionResults; import org.junit.platform.testkit.ExecutionResults;


/** /**
Expand All @@ -29,17 +26,15 @@ class DisabledTests extends AbstractJupiterTestEngineTests {


@Test @Test
void executeTestsWithDisabledTestClass() { void executeTestsWithDisabledTestClass() {
LauncherDiscoveryRequest request = request().selectors(selectClass(DisabledTestClassTestCase.class)).build(); ExecutionResults executionResults = executeTestsForClass(DisabledTestClassTestCase.class);
ExecutionResults executionResults = executeTests(request).getExecutionResults();


assertEquals(1, executionResults.getContainersSkippedCount(), "# container skipped"); assertEquals(1, executionResults.getContainersSkippedCount(), "# container skipped");
assertEquals(0, executionResults.getTestsStartedCount(), "# tests started"); assertEquals(0, executionResults.getTestsStartedCount(), "# tests started");
} }


@Test @Test
void executeTestsWithDisabledTestMethods() throws Exception { void executeTestsWithDisabledTestMethods() throws Exception {
LauncherDiscoveryRequest request = request().selectors(selectClass(DisabledTestMethodsTestCase.class)).build(); ExecutionResults executionResults = executeTestsForClass(DisabledTestMethodsTestCase.class);
ExecutionResults executionResults = executeTests(request).getExecutionResults();


assertEquals(1, executionResults.getTestsStartedCount(), "# tests started"); assertEquals(1, executionResults.getTestsStartedCount(), "# tests started");
assertEquals(1, executionResults.getTestsSuccessfulCount(), "# tests succeeded"); assertEquals(1, executionResults.getTestsSuccessfulCount(), "# tests succeeded");
Expand Down
Expand Up @@ -81,10 +81,7 @@ void testFactoryMethodIsCorrectlyDiscoveredForMethodSelector() {


@Test @Test
void dynamicTestsAreExecutedFromStream() { void dynamicTestsAreExecutedFromStream() {
LauncherDiscoveryRequest request = request().selectors( ExecutionResults executionResults = executeTests(selectMethod(MyDynamicTestCase.class, "dynamicStream"));
selectMethod(MyDynamicTestCase.class, "dynamicStream")).build();

ExecutionResults executionResults = executeTests(request).getExecutionResults();


assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), // assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), //
event(engine(), started()), // event(engine(), started()), //
Expand All @@ -103,10 +100,7 @@ void dynamicTestsAreExecutedFromStream() {


@Test @Test
void dynamicTestsAreExecutedFromCollection() { void dynamicTestsAreExecutedFromCollection() {
LauncherDiscoveryRequest request = request().selectors( ExecutionResults executionResults = executeTests(selectMethod(MyDynamicTestCase.class, "dynamicCollection"));
selectMethod(MyDynamicTestCase.class, "dynamicCollection")).build();

ExecutionResults executionResults = executeTests(request).getExecutionResults();


assertAll( // assertAll( //
() -> assertEquals(3, executionResults.getContainersStartedCount(), "# container started"), () -> assertEquals(3, executionResults.getContainersStartedCount(), "# container started"),
Expand All @@ -119,10 +113,7 @@ void dynamicTestsAreExecutedFromCollection() {


@Test @Test
void dynamicTestsAreExecutedFromIterator() { void dynamicTestsAreExecutedFromIterator() {
LauncherDiscoveryRequest request = request().selectors( ExecutionResults executionResults = executeTests(selectMethod(MyDynamicTestCase.class, "dynamicIterator"));
selectMethod(MyDynamicTestCase.class, "dynamicIterator")).build();

ExecutionResults executionResults = executeTests(request).getExecutionResults();


assertAll( // assertAll( //
() -> assertEquals(3, executionResults.getContainersStartedCount(), "# container started"), () -> assertEquals(3, executionResults.getContainersStartedCount(), "# container started"),
Expand All @@ -135,10 +126,7 @@ void dynamicTestsAreExecutedFromIterator() {


@Test @Test
void dynamicTestsAreExecutedFromIterable() { void dynamicTestsAreExecutedFromIterable() {
LauncherDiscoveryRequest request = request().selectors( ExecutionResults executionResults = executeTests(selectMethod(MyDynamicTestCase.class, "dynamicIterable"));
selectMethod(MyDynamicTestCase.class, "dynamicIterable")).build();

ExecutionResults executionResults = executeTests(request).getExecutionResults();


// @TestFactory methods are counted as both container and test // @TestFactory methods are counted as both container and test
assertAll( // assertAll( //
Expand All @@ -155,7 +143,7 @@ void singleDynamicTestIsExecutedWhenDiscoveredByUniqueId() {
UniqueId uniqueId = discoverUniqueId(MyDynamicTestCase.class, "dynamicStream") // UniqueId uniqueId = discoverUniqueId(MyDynamicTestCase.class, "dynamicStream") //
.append(DYNAMIC_TEST_SEGMENT_TYPE, "#2"); .append(DYNAMIC_TEST_SEGMENT_TYPE, "#2");


ExecutionResults executionResults = executeTests(selectUniqueId(uniqueId)).getExecutionResults(); ExecutionResults executionResults = executeTests(selectUniqueId(uniqueId));


assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), // assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), //
event(engine(), started()), // event(engine(), started()), //
Expand All @@ -171,10 +159,8 @@ void singleDynamicTestIsExecutedWhenDiscoveredByUniqueId() {


@Test @Test
void dynamicContainersAreExecutedFromIterable() { void dynamicContainersAreExecutedFromIterable() {
LauncherDiscoveryRequest request = request().selectors( ExecutionResults executionResults = executeTests(
selectMethod(MyDynamicTestCase.class, "dynamicContainerWithIterable")).build(); selectMethod(MyDynamicTestCase.class, "dynamicContainerWithIterable"));

ExecutionResults executionResults = executeTests(request).getExecutionResults();


assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), // assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), //
event(engine(), started()), // event(engine(), started()), //
Expand Down Expand Up @@ -209,7 +195,7 @@ void singleDynamicTestInNestedDynamicContainerIsExecutedWhenDiscoveredByUniqueId
.append(DYNAMIC_CONTAINER_SEGMENT_TYPE, "#1") // .append(DYNAMIC_CONTAINER_SEGMENT_TYPE, "#1") //
.append(DYNAMIC_TEST_SEGMENT_TYPE, "#2"); .append(DYNAMIC_TEST_SEGMENT_TYPE, "#2");


ExecutionResults executionResults = executeTests(selectUniqueId(uniqueId)).getExecutionResults(); ExecutionResults executionResults = executeTests(selectUniqueId(uniqueId));


assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), // assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), //
event(engine(), started()), // event(engine(), started()), //
Expand All @@ -235,7 +221,7 @@ void allDynamicTestInNestedDynamicContainerAreExecutedWhenContainerIsDiscoveredB
.append(DYNAMIC_CONTAINER_SEGMENT_TYPE, "#2") // .append(DYNAMIC_CONTAINER_SEGMENT_TYPE, "#2") //
.append(DYNAMIC_CONTAINER_SEGMENT_TYPE, "#1"); .append(DYNAMIC_CONTAINER_SEGMENT_TYPE, "#1");


ExecutionResults executionResults = executeTests(selectUniqueId(uniqueId)).getExecutionResults(); ExecutionResults executionResults = executeTests(selectUniqueId(uniqueId));


assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), // assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), //
event(engine(), started()), // event(engine(), started()), //
Expand All @@ -260,10 +246,8 @@ void allDynamicTestInNestedDynamicContainerAreExecutedWhenContainerIsDiscoveredB


@Test @Test
void nestedDynamicContainersAreExecuted() { void nestedDynamicContainersAreExecuted() {
LauncherDiscoveryRequest request = request().selectors( ExecutionResults executionResults = executeTests(
selectMethod(MyDynamicTestCase.class, "nestedDynamicContainers")).build(); selectMethod(MyDynamicTestCase.class, "nestedDynamicContainers"));

ExecutionResults executionResults = executeTests(request).getExecutionResults();


assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), // assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), //
event(engine(), started()), // event(engine(), started()), //
Expand Down Expand Up @@ -296,10 +280,8 @@ void nestedDynamicContainersAreExecuted() {


@Test @Test
void legacyReportingNames() { void legacyReportingNames() {
LauncherDiscoveryRequest request = request().selectors( ExecutionResults executionResults = executeTests(
selectMethod(MyDynamicTestCase.class, "nestedDynamicContainers")).build(); selectMethod(MyDynamicTestCase.class, "nestedDynamicContainers"));

ExecutionResults executionResults = executeTests(request).getExecutionResults();


// @formatter:off // @formatter:off
Stream<String> legacyReportingNames = executionResults.getExecutionEvents().stream() Stream<String> legacyReportingNames = executionResults.getExecutionEvents().stream()
Expand All @@ -314,10 +296,8 @@ void legacyReportingNames() {


@Test @Test
void dynamicContainersAreExecutedFromExceptionThrowingStream() { void dynamicContainersAreExecutedFromExceptionThrowingStream() {
LauncherDiscoveryRequest request = request().selectors( ExecutionResults executionResults = executeTests(
selectMethod(MyDynamicTestCase.class, "dynamicContainerWithExceptionThrowingStream")).build(); selectMethod(MyDynamicTestCase.class, "dynamicContainerWithExceptionThrowingStream"));

ExecutionResults executionResults = executeTests(request).getExecutionResults();


assertTrue(MyDynamicTestCase.exceptionThrowingStreamClosed.get(), "stream should be closed"); assertTrue(MyDynamicTestCase.exceptionThrowingStreamClosed.get(), "stream should be closed");


Expand Down Expand Up @@ -349,10 +329,8 @@ void dynamicContainersAreExecutedFromExceptionThrowingStream() {


@Test @Test
void dynamicContainersChildrenMustNotBeNull() { void dynamicContainersChildrenMustNotBeNull() {
LauncherDiscoveryRequest request = request().selectors( ExecutionResults executionResults = executeTests(
selectMethod(MyDynamicTestCase.class, "dynamicContainerWithNullChildren")).build(); selectMethod(MyDynamicTestCase.class, "dynamicContainerWithNullChildren"));

ExecutionResults executionResults = executeTests(request).getExecutionResults();


assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), // assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), //
event(engine(), started()), // event(engine(), started()), //
Expand All @@ -369,10 +347,7 @@ void dynamicContainersChildrenMustNotBeNull() {


@Test @Test
void testFactoryMethodsMayReturnSingleDynamicContainer() { void testFactoryMethodsMayReturnSingleDynamicContainer() {
LauncherDiscoveryRequest request = request().selectors( ExecutionResults executionResults = executeTests(selectMethod(MyDynamicTestCase.class, "singleContainer"));
selectMethod(MyDynamicTestCase.class, "singleContainer")).build();

ExecutionResults executionResults = executeTests(request).getExecutionResults();


assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), // assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), //
event(engine(), started()), // event(engine(), started()), //
Expand All @@ -394,10 +369,7 @@ void testFactoryMethodsMayReturnSingleDynamicContainer() {


@Test @Test
void testFactoryMethodsMayReturnSingleDynamicTest() { void testFactoryMethodsMayReturnSingleDynamicTest() {
LauncherDiscoveryRequest request = request().selectors( ExecutionResults executionResults = executeTests(selectMethod(MyDynamicTestCase.class, "singleTest"));
selectMethod(MyDynamicTestCase.class, "singleTest")).build();

ExecutionResults executionResults = executeTests(request).getExecutionResults();


assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), // assertRecordedExecutionEventsContainsExactly(executionResults.getExecutionEvents(), //
event(engine(), started()), // event(engine(), started()), //
Expand Down

0 comments on commit aab01a7

Please sign in to comment.