summaryrefslogtreecommitdiffstats
path: root/vespa-osgi-testrunner
diff options
context:
space:
mode:
Diffstat (limited to 'vespa-osgi-testrunner')
-rw-r--r--vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/JunitRunner.java30
1 files changed, 20 insertions, 10 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 70737859342..fc4b3e74b29 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
@@ -90,19 +90,29 @@ public class JunitRunner extends AbstractComponent implements TestRunner {
if (execution != null && !execution.isDone()) {
throw new IllegalStateException("Test execution already in progress");
}
- testRuntimeProvider.initialize(testConfig);
- Optional<Bundle> testBundle = findTestBundle();
- if (testBundle.isEmpty()) {
- throw new RuntimeException("No test bundle available");
- }
+ try {
+ testRuntimeProvider.initialize(testConfig);
+ Optional<Bundle> testBundle = findTestBundle();
+ if (testBundle.isEmpty()) {
+ throw new RuntimeException("No test bundle available");
+ }
- Optional<TestDescriptor> testDescriptor = loadTestDescriptor(testBundle.get());
- if (testDescriptor.isEmpty()) {
- throw new RuntimeException("Could not find test descriptor");
+ Optional<TestDescriptor> testDescriptor = loadTestDescriptor(testBundle.get());
+ if (testDescriptor.isEmpty()) {
+ throw new RuntimeException("Could not find test descriptor");
+ }
+ execution = CompletableFuture.supplyAsync(() -> launchJunit(loadClasses(testBundle.get(), testDescriptor.get(), category)));
+ } catch (Exception e) {
+ execution = createReportWithFailedInitialization(e);
}
- List<Class<?>> testClasses = loadClasses(testBundle.get(), testDescriptor.get(), category);
+ }
- execution = CompletableFuture.supplyAsync(() -> launchJunit(testClasses));
+ private static Future<TestReport> createReportWithFailedInitialization(Exception exception) {
+ TestReport.Failure failure = new TestReport.Failure("init", exception);
+ return CompletableFuture.completedFuture(
+ new TestReport.Builder()
+ .withFailures(List.of(failure))
+ .build());
}
@Override