When running tests with forkCount > 1 on the JUnit 5 Platform, the JUnitPlatformProvider keeps restarting the entire launcher, causing the life cycle of the tests to change. When an Extension registers an expensive resource in the root store, this resource is now created over and over again for every test class. An example of such an Extension is the ArquillianExtension. The recreation of this resource causes the tests to create and destroy all containers associated with the test for every class, rather than once per fork.
I've attached a very simple example project that contains 4 tests and a dummy extension that registers an object in the root store. The output clearly indicates the problem:
Compared to running with forkCount=2 (notice how the heavy calculation is performed 4 times, where it should only run twice):