Test JUnit 4, JUnit Jupiter, & TestNG in AotIntegrationTests
With this commit we also now assert the number of successfully executed tests.
This commit is contained in:
parent
93049f98ee
commit
94ff519072
|
|
@ -29,6 +29,36 @@ import java.util.stream.Stream;
|
||||||
*/
|
*/
|
||||||
abstract class AbstractAotTests {
|
abstract class AbstractAotTests {
|
||||||
|
|
||||||
|
static final String[] expectedSourceFilesForBasicSpringTests = {
|
||||||
|
// Global
|
||||||
|
"org/springframework/test/context/aot/TestAotMappings__Generated.java",
|
||||||
|
// BasicSpringJupiterSharedConfigTests
|
||||||
|
"org/springframework/context/event/DefaultEventListenerFactory__TestContext001_BeanDefinitions.java",
|
||||||
|
"org/springframework/context/event/EventListenerMethodProcessor__TestContext001_BeanDefinitions.java",
|
||||||
|
"org/springframework/test/context/aot/samples/basic/BasicSpringJupiterSharedConfigTests__TestContext001_ApplicationContextInitializer.java",
|
||||||
|
"org/springframework/test/context/aot/samples/basic/BasicSpringJupiterSharedConfigTests__TestContext001_BeanFactoryRegistrations.java",
|
||||||
|
"org/springframework/test/context/aot/samples/basic/BasicTestConfiguration__TestContext001_BeanDefinitions.java",
|
||||||
|
// BasicSpringJupiterTests -- not generated b/c already generated for BasicSpringJupiterSharedConfigTests.
|
||||||
|
// BasicSpringJupiterTests.NestedTests
|
||||||
|
"org/springframework/context/event/DefaultEventListenerFactory__TestContext002_BeanDefinitions.java",
|
||||||
|
"org/springframework/context/event/EventListenerMethodProcessor__TestContext002_BeanDefinitions.java",
|
||||||
|
"org/springframework/test/context/aot/samples/basic/BasicSpringJupiterTests_NestedTests__TestContext002_ApplicationContextInitializer.java",
|
||||||
|
"org/springframework/test/context/aot/samples/basic/BasicSpringJupiterTests_NestedTests__TestContext002_BeanFactoryRegistrations.java",
|
||||||
|
"org/springframework/test/context/aot/samples/basic/BasicTestConfiguration__TestContext002_BeanDefinitions.java",
|
||||||
|
// BasicSpringTestNGTests
|
||||||
|
"org/springframework/context/event/DefaultEventListenerFactory__TestContext003_BeanDefinitions.java",
|
||||||
|
"org/springframework/context/event/EventListenerMethodProcessor__TestContext003_BeanDefinitions.java",
|
||||||
|
"org/springframework/test/context/aot/samples/basic/BasicSpringTestNGTests__TestContext003_ApplicationContextInitializer.java",
|
||||||
|
"org/springframework/test/context/aot/samples/basic/BasicSpringTestNGTests__TestContext003_BeanFactoryRegistrations.java",
|
||||||
|
"org/springframework/test/context/aot/samples/basic/BasicTestConfiguration__TestContext003_BeanDefinitions.java",
|
||||||
|
// BasicSpringVintageTests
|
||||||
|
"org/springframework/context/event/DefaultEventListenerFactory__TestContext004_BeanDefinitions.java",
|
||||||
|
"org/springframework/context/event/EventListenerMethodProcessor__TestContext004_BeanDefinitions.java",
|
||||||
|
"org/springframework/test/context/aot/samples/basic/BasicSpringVintageTests__TestContext004_ApplicationContextInitializer.java",
|
||||||
|
"org/springframework/test/context/aot/samples/basic/BasicSpringVintageTests__TestContext004_BeanFactoryRegistrations.java",
|
||||||
|
"org/springframework/test/context/aot/samples/basic/BasicTestConfiguration__TestContext004_BeanDefinitions.java"
|
||||||
|
};
|
||||||
|
|
||||||
Stream<Class<?>> scan() {
|
Stream<Class<?>> scan() {
|
||||||
return new TestClassScanner(classpathRoots()).scan();
|
return new TestClassScanner(classpathRoots()).scan();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,10 +40,11 @@ import org.springframework.aot.test.generate.compile.CompileWithTargetClassAcces
|
||||||
import org.springframework.aot.test.generate.compile.TestCompiler;
|
import org.springframework.aot.test.generate.compile.TestCompiler;
|
||||||
import org.springframework.test.context.aot.samples.basic.BasicSpringJupiterSharedConfigTests;
|
import org.springframework.test.context.aot.samples.basic.BasicSpringJupiterSharedConfigTests;
|
||||||
import org.springframework.test.context.aot.samples.basic.BasicSpringJupiterTests;
|
import org.springframework.test.context.aot.samples.basic.BasicSpringJupiterTests;
|
||||||
|
import org.springframework.test.context.aot.samples.basic.BasicSpringTestNGTests;
|
||||||
|
import org.springframework.test.context.aot.samples.basic.BasicSpringVintageTests;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
|
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
|
||||||
import static org.junit.platform.launcher.EngineFilter.includeEngines;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* End-to-end integration tests for AOT support in the TestContext framework.
|
* End-to-end integration tests for AOT support in the TestContext framework.
|
||||||
|
|
@ -78,10 +79,7 @@ class AotIntegrationTests extends AbstractAotTests {
|
||||||
@Test
|
@Test
|
||||||
void endToEndTests() {
|
void endToEndTests() {
|
||||||
// AOT BUILD-TIME: CLASSPATH SCANNING
|
// AOT BUILD-TIME: CLASSPATH SCANNING
|
||||||
Stream<Class<?>> testClasses = createTestClassScanner()
|
Stream<Class<?>> testClasses = createTestClassScanner().scan("org.springframework.test.context.aot.samples.basic");
|
||||||
.scan("org.springframework.test.context.aot.samples.basic")
|
|
||||||
// This test focuses solely on JUnit Jupiter tests
|
|
||||||
.filter(sourceFile -> sourceFile.getName().contains("Jupiter"));
|
|
||||||
|
|
||||||
// AOT BUILD-TIME: PROCESSING
|
// AOT BUILD-TIME: PROCESSING
|
||||||
InMemoryGeneratedFiles generatedFiles = new InMemoryGeneratedFiles();
|
InMemoryGeneratedFiles generatedFiles = new InMemoryGeneratedFiles();
|
||||||
|
|
@ -89,23 +87,28 @@ class AotIntegrationTests extends AbstractAotTests {
|
||||||
generator.processAheadOfTime(testClasses);
|
generator.processAheadOfTime(testClasses);
|
||||||
|
|
||||||
List<String> sourceFiles = generatedFiles.getGeneratedFiles(Kind.SOURCE).keySet().stream().toList();
|
List<String> sourceFiles = generatedFiles.getGeneratedFiles(Kind.SOURCE).keySet().stream().toList();
|
||||||
assertThat(sourceFiles).containsExactlyInAnyOrder(expectedSourceFilesForBasicSpringJupiterTests);
|
assertThat(sourceFiles).containsExactlyInAnyOrder(expectedSourceFilesForBasicSpringTests);
|
||||||
|
|
||||||
// AOT BUILD-TIME: COMPILATION
|
// AOT BUILD-TIME: COMPILATION
|
||||||
TestCompiler.forSystem().withFiles(generatedFiles)
|
TestCompiler.forSystem().withFiles(generatedFiles)
|
||||||
// .printFiles(System.out)
|
// .printFiles(System.out)
|
||||||
.compile(compiled ->
|
.compile(compiled ->
|
||||||
// AOT RUN-TIME: EXECUTION
|
// AOT RUN-TIME: EXECUTION
|
||||||
runTestsInAotMode(BasicSpringJupiterTests.class, BasicSpringJupiterSharedConfigTests.class));
|
runTestsInAotMode(5,
|
||||||
|
BasicSpringJupiterSharedConfigTests.class,
|
||||||
|
BasicSpringJupiterTests.class,
|
||||||
|
BasicSpringJupiterTests.NestedTests.class,
|
||||||
|
BasicSpringTestNGTests.class,
|
||||||
|
BasicSpringVintageTests.class
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void runTestsInAotMode(Class<?>... testClasses) {
|
private static void runTestsInAotMode(long expectedNumTests, Class<?>... testClasses) {
|
||||||
try {
|
try {
|
||||||
System.setProperty(AotDetector.AOT_ENABLED, "true");
|
System.setProperty(AotDetector.AOT_ENABLED, "true");
|
||||||
|
|
||||||
LauncherDiscoveryRequestBuilder builder = LauncherDiscoveryRequestBuilder.request()
|
LauncherDiscoveryRequestBuilder builder = LauncherDiscoveryRequestBuilder.request();
|
||||||
.filters(includeEngines("junit-jupiter"));
|
|
||||||
Arrays.stream(testClasses).forEach(testClass -> builder.selectors(selectClass(testClass)));
|
Arrays.stream(testClasses).forEach(testClass -> builder.selectors(selectClass(testClass)));
|
||||||
LauncherDiscoveryRequest request = builder.build();
|
LauncherDiscoveryRequest request = builder.build();
|
||||||
SummaryGeneratingListener listener = new SummaryGeneratingListener();
|
SummaryGeneratingListener listener = new SummaryGeneratingListener();
|
||||||
|
|
@ -115,6 +118,7 @@ class AotIntegrationTests extends AbstractAotTests {
|
||||||
List<Throwable> exceptions = summary.getFailures().stream().map(Failure::getException).toList();
|
List<Throwable> exceptions = summary.getFailures().stream().map(Failure::getException).toList();
|
||||||
throw new MultipleFailuresError("Test execution failures", exceptions);
|
throw new MultipleFailuresError("Test execution failures", exceptions);
|
||||||
}
|
}
|
||||||
|
assertThat(summary.getTestsSucceededCount()).isEqualTo(expectedNumTests);
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
System.clearProperty(AotDetector.AOT_ENABLED);
|
System.clearProperty(AotDetector.AOT_ENABLED);
|
||||||
|
|
@ -128,27 +132,4 @@ class AotIntegrationTests extends AbstractAotTests {
|
||||||
return new TestClassScanner(classpathRoots);
|
return new TestClassScanner(classpathRoots);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String[] expectedSourceFilesForBasicSpringJupiterTests = {
|
|
||||||
// Global
|
|
||||||
"org/springframework/test/context/aot/TestAotMappings__Generated.java",
|
|
||||||
// BasicSpringJupiterSharedConfigTests
|
|
||||||
"org/springframework/context/event/DefaultEventListenerFactory__TestContext001_BeanDefinitions.java",
|
|
||||||
"org/springframework/context/event/EventListenerMethodProcessor__TestContext001_BeanDefinitions.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicSpringJupiterSharedConfigTests__TestContext001_ApplicationContextInitializer.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicSpringJupiterSharedConfigTests__TestContext001_BeanFactoryRegistrations.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicTestConfiguration__TestContext001_BeanDefinitions.java",
|
|
||||||
// BasicSpringJupiterTests -- not generated b/c already generated for BasicSpringJupiterSharedConfigTests.
|
|
||||||
// "org/springframework/context/event/DefaultEventListenerFactory__TestContext00?_BeanDefinitions.java",
|
|
||||||
// "org/springframework/context/event/EventListenerMethodProcessor__TestContext00?_BeanDefinitions.java",
|
|
||||||
// "org/springframework/test/context/aot/samples/basic/BasicSpringJupiterTests__TestContext00?_ApplicationContextInitializer.java",
|
|
||||||
// "org/springframework/test/context/aot/samples/basic/BasicSpringJupiterTests__TestContext00?_BeanFactoryRegistrations.java",
|
|
||||||
// "org/springframework/test/context/aot/samples/basic/BasicTestConfiguration__TestContext00?_BeanDefinitions.java",
|
|
||||||
// BasicSpringJupiterTests.NestedTests
|
|
||||||
"org/springframework/context/event/DefaultEventListenerFactory__TestContext002_BeanDefinitions.java",
|
|
||||||
"org/springframework/context/event/EventListenerMethodProcessor__TestContext002_BeanDefinitions.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicSpringJupiterTests_NestedTests__TestContext002_ApplicationContextInitializer.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicSpringJupiterTests_NestedTests__TestContext002_BeanFactoryRegistrations.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicTestConfiguration__TestContext002_BeanDefinitions.java",
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -92,37 +92,7 @@ class TestAotProcessorTests extends AbstractAotTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Path> expectedSourceFiles() {
|
private static List<Path> expectedSourceFiles() {
|
||||||
return Arrays.stream(expectedSourceFiles).map(Path::of).toList();
|
return Arrays.stream(expectedSourceFilesForBasicSpringTests).map(Path::of).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String[] expectedSourceFiles = {
|
|
||||||
// Global
|
|
||||||
"org/springframework/test/context/aot/TestAotMappings__Generated.java",
|
|
||||||
// BasicSpringJupiterSharedConfigTests
|
|
||||||
"org/springframework/context/event/DefaultEventListenerFactory__TestContext001_BeanDefinitions.java",
|
|
||||||
"org/springframework/context/event/EventListenerMethodProcessor__TestContext001_BeanDefinitions.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicSpringJupiterSharedConfigTests__TestContext001_ApplicationContextInitializer.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicSpringJupiterSharedConfigTests__TestContext001_BeanFactoryRegistrations.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicTestConfiguration__TestContext001_BeanDefinitions.java",
|
|
||||||
// BasicSpringJupiterTests -- not generated b/c already generated for BasicSpringJupiterSharedConfigTests.
|
|
||||||
// BasicSpringJupiterTests.NestedTests
|
|
||||||
"org/springframework/context/event/DefaultEventListenerFactory__TestContext002_BeanDefinitions.java",
|
|
||||||
"org/springframework/context/event/EventListenerMethodProcessor__TestContext002_BeanDefinitions.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicSpringJupiterTests_NestedTests__TestContext002_ApplicationContextInitializer.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicSpringJupiterTests_NestedTests__TestContext002_BeanFactoryRegistrations.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicTestConfiguration__TestContext002_BeanDefinitions.java",
|
|
||||||
// BasicSpringTestNGTests
|
|
||||||
"org/springframework/context/event/DefaultEventListenerFactory__TestContext003_BeanDefinitions.java",
|
|
||||||
"org/springframework/context/event/EventListenerMethodProcessor__TestContext003_BeanDefinitions.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicSpringTestNGTests__TestContext003_ApplicationContextInitializer.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicSpringTestNGTests__TestContext003_BeanFactoryRegistrations.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicTestConfiguration__TestContext003_BeanDefinitions.java",
|
|
||||||
// BasicSpringVintageTests
|
|
||||||
"org/springframework/context/event/DefaultEventListenerFactory__TestContext004_BeanDefinitions.java",
|
|
||||||
"org/springframework/context/event/EventListenerMethodProcessor__TestContext004_BeanDefinitions.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicSpringVintageTests__TestContext004_ApplicationContextInitializer.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicSpringVintageTests__TestContext004_BeanFactoryRegistrations.java",
|
|
||||||
"org/springframework/test/context/aot/samples/basic/BasicTestConfiguration__TestContext004_BeanDefinitions.java"
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue