You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2025-04-30-test-classloading-rewrite.adoc
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,7 @@ In practice, there have been a few hiccups and we've also discovered some edge c
44
44
45
45
- *All dev services now start in the JUnit discovery phase*. https://quarkus.io/guides/dev-services[Quarkus Dev Services] are currently started during https://quarkus.io/guides/reaugmentation#what-is-augmentation[the augmentation phase], along with bytecode manipulation and other application initialization steps. With the new testing design, all augmentation happens at the beginning of the test run, during the JUnit discovery phase. This means all Dev Services also start at the beginning of the test run. If several test classes with different Dev Service configuration are augmented before any tests are run, multiple differently-configured Dev Services may be running at the same time. This can cause port conflicts and cross-talk on configuration values. We're hoping to have a https://github.com/quarkusio/quarkus/issues/45785[fix] for this in the next release. As a workaround, splitting conflicting tests into separate projects should fix symptoms.
46
46
- *Config access from JUnit conditions*. Using a `ConfigProvider` from a custom JUnit condition will https://github.com/quarkusio/quarkus/issues/47081[trigger a `ServiceConfigurationError`]. The workaround is to set the thread context classloader to `this.getClass().getClassLoader()` before reading config, and then set it back afterwards. This is fixed in 3.23.
47
-
- *Nested test issues*. If nested `@QuarkusTest` tests are mixed in the same project with plain tests, the plain tests https://github.com/quarkusio/quarkus/issues/47657[will not be able to access Quarkus config], because the thread context classloader does not get correctly reset. As a workaround, you can manually set the thread context classloader to the system classloader in the plain tests. The nested tests also https://github.com/quarkusio/quarkus/issues/47671[have problems in dev mode]. Most of these issues are fixed in 3.23.
47
+
- *Nested test issues*. If nested `@QuarkusTest` tests are mixed in the same project with plain tests, the plain tests https://github.com/quarkusio/quarkus/issues/47657[will not be able to access Quarkus config], because the thread context classloader does not get correctly reset. As a workaround, you can manually set the thread context classloader to the system classloader in the plain tests. The nested tests also https://github.com/quarkusio/quarkus/issues/47671[have problems in dev mode]. Most of these issues are fixed in 3.23, and the remaining cases are sorted out in 3.24.
48
48
- *junit-platform.properties* Including a `junit-platform.properties` in a project https://github.com/quarkusio/quarkus/issues/47646[causes problems] for tests using `@QuarkusTest`.
49
49
- *Gradle source sets*. In some cases classes in one gradle source set https://github.com/quarkusio/quarkus/issues/47760[cannot access package-private fields and classes in a different source set]. This causes an `IllegalAccessError`. The workaround is to switch from package-private to public.
50
50
- *IDE support*. Running `QuarkusTest` tests from the Eclipse IDE is https://github.com/quarkusio/quarkus/issues/47656[more challenging]. Right-clicking and running individual test methods works, and running a whole package also works. But running at the class level gives an error. Similar, in Visual Studio Code, running all tests in a class or package https://github.com/quarkusio/quarkus/issues/48014[will fail], but running individual test methods will work.
@@ -60,6 +60,7 @@ In practice, there have been a few hiccups and we've also discovered some edge c
60
60
61
61
- *`@TestProfile` on `@Nested` tests.* Mixing different test profiles and test resources on `@Nested` tests is no longer supported. By definition, every `@TestProfile` must get its own Quarkus application and classloader. Having multiple classloaders execute one test isn't compatible with loading the test with the classloader used to run it.
62
62
- *Version 2.x of the Maven Surefire plugin*. Versions below 3.x of the Maven Surefire plugin will no longer work with `@QuarkusTest`. Version 3 of the Surefire plugin was released in 2023, so version 2 is now rather old.
63
+
- *Parallel test execution.* Running Quarkus tests in parallel has https://github.com/quarkusio/quarkus/issues/42296[never been supported], but it would work in some circumstances. It is now less likely to work.
0 commit comments