summaryrefslogtreecommitdiffstats
path: root/vespa-osgi-testrunner
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-06-13 22:59:41 +0200
committerjonmv <venstad@gmail.com>2022-06-13 22:59:41 +0200
commit59451bfb037dd766df1564121ac35c7f728f95b5 (patch)
tree0c701edc7926914a070a21b6dc317c95b83ddad3 /vespa-osgi-testrunner
parent9ed4500b380ce77c1dc9f303006c02ba8096ee42 (diff)
Set context class loader for JUnit
Diffstat (limited to 'vespa-osgi-testrunner')
-rw-r--r--vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/JunitRunner.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/JunitRunner.java b/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/JunitRunner.java
index 54f0941208d..75873e7b997 100644
--- a/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/JunitRunner.java
+++ b/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/JunitRunner.java
@@ -103,7 +103,7 @@ public class JunitRunner extends AbstractComponent implements TestRunner {
private TestReport launchJunit(Suite suite, byte[] testConfig) {
List<Class<?>> testClasses = classLoader.apply(suite);
- if (testClasses == null)
+ if (testClasses == null || testClasses.isEmpty())
return null;
testRuntimeProvider.initialize(testConfig);
@@ -117,7 +117,14 @@ public class JunitRunner extends AbstractComponent implements TestRunner {
.map(DiscoverySelectors::selectClass)
.collect(toList()))
.build();
- testExecutor.accept(discoveryRequest, new TestExecutionListener[] { testReportListener });
+ ClassLoader old = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(testClasses.get(0).getClassLoader());
+ testExecutor.accept(discoveryRequest, new TestExecutionListener[] { testReportListener });
+ }
+ finally {
+ Thread.currentThread().setContextClassLoader(old);
+ }
return testReportListener.report();
}