Fix #8345: forked test execution doesn't access main resources

Fixes issue where tests running in forked mode (Test / fork := true)
cannot access resources from src/main/resources, while non-forked
execution works correctly.

Root cause: Context classloader not set: tests using
Thread.currentThread().getContextClassLoader() couldn't find
resources because the context classloader wasn't set to the
URLClassLoader with the classpath

Solution: Set context classloader in ForkTestMain.runTests() to the
URLClassLoader containing the test classpath
This commit is contained in:
Anatolii Kmetiuk 2025-12-05 18:55:33 +09:00
parent 33019a6453
commit 862884b330
1 changed files with 1 additions and 0 deletions

View File

@ -325,6 +325,7 @@ public class ForkTestMain {
}
private void runTests(TestInfo info, ClassLoader classLoader) throws Exception {
Thread.currentThread().setContextClassLoader(classLoader);
final ExecutorService executor = executorService(info.parallel);
final TaskDef[] tests = info.taskDefs.toArray(new TaskDef[] {});
final int nFrameworks = info.testRunners.size();