diff options
author | jonmv <venstad@gmail.com> | 2022-05-11 14:09:24 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-05-11 14:09:24 +0200 |
commit | e7ca6ec643ae0d568b6d99d421023092ed8f8e26 (patch) | |
tree | 65aa5843fa8bc8716c05021d7dc013fdf7caf850 /vespa-osgi-testrunner | |
parent | 64eb204764af59d2e3253c093351a51ec4680e8a (diff) |
Read test report also when no tests were executed
Diffstat (limited to 'vespa-osgi-testrunner')
-rw-r--r-- | vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/JunitRunner.java | 34 |
1 files changed, 14 insertions, 20 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 90b3f972a3a..9bbba2d6c2a 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 @@ -7,16 +7,14 @@ import ai.vespa.cloud.Zone; import ai.vespa.hosted.api.TestDescriptor; import ai.vespa.hosted.cd.InconclusiveTestException; import ai.vespa.hosted.cd.internal.TestRuntimeProvider; -import com.yahoo.component.annotation.Inject; import com.yahoo.component.AbstractComponent; +import com.yahoo.component.annotation.Inject; import com.yahoo.io.IOUtils; import com.yahoo.jdisc.application.OsgiFramework; import com.yahoo.vespa.defaults.Defaults; import org.junit.jupiter.engine.JupiterTestEngine; -import org.junit.platform.engine.UniqueId; import org.junit.platform.engine.discovery.DiscoverySelectors; import org.junit.platform.launcher.Launcher; -import org.junit.platform.launcher.LauncherDiscoveryRequest; import org.junit.platform.launcher.core.LauncherConfig; import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder; import org.junit.platform.launcher.core.LauncherFactory; @@ -37,9 +35,10 @@ import java.util.concurrent.ExecutionException; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; -import java.util.stream.Collectors; import java.util.stream.Stream; +import static java.util.stream.Collectors.toList; + /** * @author mortent */ @@ -163,7 +162,7 @@ public class JunitRunner extends AbstractComponent implements TestRunner { private List<Class<?>> loadClasses(Bundle bundle, TestDescriptor testDescriptor, TestDescriptor.TestCategory testCategory) { List<Class<?>> testClasses = testDescriptor.getConfiguredTests(testCategory).stream() .map(className -> loadClass(bundle, className)) - .collect(Collectors.toList()); + .collect(toList()); StringBuffer buffer = new StringBuffer(); testClasses.forEach(cl -> buffer.append("\t").append(cl.toString()).append(" / ").append(cl.getClassLoader().toString()).append("\n")); @@ -180,24 +179,18 @@ public class JunitRunner extends AbstractComponent implements TestRunner { } private TestReport launchJunit(List<Class<?>> testClasses, boolean isProductionTest) { - LauncherDiscoveryRequest discoveryRequest = LauncherDiscoveryRequestBuilder.request() - .selectors(testClasses.stream().map(DiscoverySelectors::selectClass).collect(Collectors.toList())) - .build(); - - var launcherConfig = LauncherConfig.builder() - .addTestEngines(new JupiterTestEngine()) - - .build(); - Launcher launcher = LauncherFactory.create(launcherConfig); - - // Create log listener: var logListener = new VespaJunitLogListener(record -> logRecords.put(record.getSequenceNumber(), record)); - // Create a summary listener: var summaryListener = new SummaryGeneratingListener(); + + Launcher launcher = LauncherFactory.create(LauncherConfig.builder().addTestEngines(new JupiterTestEngine()).build()); launcher.registerTestExecutionListeners(logListener, summaryListener); - // Execute request - launcher.execute(discoveryRequest); + launcher.execute(LauncherDiscoveryRequestBuilder.request() + .selectors(testClasses.stream() + .map(DiscoverySelectors::selectClass) + .collect(toList())) + .build()); + var report = summaryListener.getSummary(); var failures = report.getFailures().stream() .map(failure -> { @@ -205,11 +198,12 @@ public class JunitRunner extends AbstractComponent implements TestRunner { return new TestReport.Failure(VespaJunitLogListener.toString(failure.getTestIdentifier().getUniqueIdObject()), failure.getException()); }) - .collect(Collectors.toList()); + .collect(toList()); long inconclusive = isProductionTest ? failures.stream() .filter(failure -> failure.exception() instanceof InconclusiveTestException) .count() : 0; + return TestReport.builder() .withSuccessCount(report.getTestsSucceededCount()) .withAbortedCount(report.getTestsAbortedCount()) |