Details
Description
Status Quo
Except for Spring's legacy JUnit 3.8 based testing framework which is still used internally within the spring-orm module, the Spring test suite was completely migrated to the JUnit 4 programming model in conjunction with SPR-13514.
The reason the legacy testing framework is still based on JUnit 3.8 is that AbstractJpaTests uses a ShadowingClassLoader to load and execute the test in a different class loader.
Unfortunately, it is impossible to achieve the same results without introducing a custom JUnit Runner.
Possible Solutions
- Introduce a custom Runner that reproduces the behavior in AbstractJpaTests.
- Migrate the concrete subclasses of AbstractJpaTests to JUnit 4 without the use of a ShadowingClassLoader.
Deliverables
- Remove AbstractJpaTests along with the remainder of the legacy JUnit 3.8 based testing framework in the spring-orm module.
- Revise all concrete subclasses of AbstractJpaTests accordingly.