aboutsummaryrefslogtreecommitdiffstats
path: root/vespa-osgi-testrunner
diff options
context:
space:
mode:
authorMorten Tokle <mortent@verizonmedia.com>2021-03-29 14:18:04 +0200
committerMorten Tokle <mortent@verizonmedia.com>2021-03-29 14:18:04 +0200
commit586491230287ae5f927571448b5337fbb02b3422 (patch)
tree28e20de4183747f354193ba717e7705cd06ec9e9 /vespa-osgi-testrunner
parente3c0d849f717dba29a63558d29fbf5d7b5a7daaa (diff)
Add logging of ReportEntry
Diffstat (limited to 'vespa-osgi-testrunner')
-rw-r--r--vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/JunitRunner.java3
-rw-r--r--vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/VespaJunitLogListener.java59
2 files changed, 60 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 fc4b3e74b29..30949d495b4 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
@@ -19,7 +19,6 @@ 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;
-import org.junit.platform.launcher.listeners.LoggingListener;
import org.junit.platform.launcher.listeners.SummaryGeneratingListener;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
@@ -178,7 +177,7 @@ public class JunitRunner extends AbstractComponent implements TestRunner {
// Create log listener:
var logLines = new ArrayList<LogRecord>();
- var logListener = LoggingListener.forBiConsumer((t, m) -> log(logLines, m.get(), t));
+ var logListener = VespaJunitLogListener.forBiConsumer((t, m) -> log(logLines, m.get(), t));
// Create a summary listener:
var summaryListener = new SummaryGeneratingListener();
launcher.registerTestExecutionListeners(logListener, summaryListener);
diff --git a/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/VespaJunitLogListener.java b/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/VespaJunitLogListener.java
new file mode 100644
index 00000000000..a3c64a63365
--- /dev/null
+++ b/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/VespaJunitLogListener.java
@@ -0,0 +1,59 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+package com.yahoo.vespa.testrunner;
+
+import org.junit.platform.commons.util.Preconditions;
+import org.junit.platform.engine.TestExecutionResult;
+import org.junit.platform.engine.reporting.ReportEntry;
+import org.junit.platform.launcher.TestExecutionListener;
+import org.junit.platform.launcher.TestIdentifier;
+
+import java.util.function.BiConsumer;
+import java.util.function.Supplier;
+
+public class VespaJunitLogListener implements TestExecutionListener {
+
+ public static VespaJunitLogListener forBiConsumer(BiConsumer<Throwable, Supplier<String>> logger) {
+ return new VespaJunitLogListener(logger);
+ }
+
+ private final BiConsumer<Throwable, Supplier<String>> logger;
+
+ private VespaJunitLogListener(BiConsumer<Throwable, Supplier<String>> logger) {
+ this.logger = Preconditions.notNull(logger, "logger must not be null");
+ }
+
+ @Override
+ public void dynamicTestRegistered(TestIdentifier testIdentifier) {
+ log("Registered dynamic test: %s - %s", testIdentifier.getDisplayName(), testIdentifier.getUniqueId());
+ }
+
+ @Override
+ public void executionStarted(TestIdentifier testIdentifier) {
+ log("Test started: %s - %s", testIdentifier.getDisplayName(), testIdentifier.getUniqueId());
+ }
+
+ @Override
+ public void executionSkipped(TestIdentifier testIdentifier, String reason) {
+ log("Test skipped: %s - %s - %s", testIdentifier.getDisplayName(), testIdentifier.getUniqueId(), reason);
+ }
+
+ @Override
+ public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) {
+ logWithThrowable("Test completed: %s - %s - %s", testExecutionResult.getThrowable().orElse(null),
+ testIdentifier.getDisplayName(), testIdentifier.getUniqueId(), testExecutionResult);
+ }
+
+ @Override
+ public void reportingEntryPublished(TestIdentifier testIdentifier, ReportEntry entry) {
+ log("[" + testIdentifier.getDisplayName() + "]: " + entry.toString());
+ }
+
+ private void log(String message, Object... args) {
+ logWithThrowable(message, null, args);
+ }
+
+ private void logWithThrowable(String message, Throwable t, Object... args) {
+ this.logger.accept(t, () -> String.format(message, args));
+ }
+}