diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2022-03-03 19:10:12 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2022-03-03 19:10:12 +0100 |
commit | cd62e826300f37b66df9b06638dde31eb4e8493b (patch) | |
tree | 5685a21fe16a7069d7403a4b785ea5ee62393059 /vespa-osgi-testrunner | |
parent | 2f109cdc95f0b5310750764ac1b5f4e0cb8ebfb5 (diff) |
Generate better test id
Diffstat (limited to 'vespa-osgi-testrunner')
-rw-r--r-- | vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/JunitRunner.java | 3 | ||||
-rw-r--r-- | vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/VespaJunitLogListener.java | 19 |
2 files changed, 13 insertions, 9 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 1099775c0dd..c59c693a789 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 @@ -202,8 +202,7 @@ public class JunitRunner extends AbstractComponent implements TestRunner { var failures = report.getFailures().stream() .map(failure -> { TestReport.trimStackTraces(failure.getException(), JunitRunner.class.getName()); - return new TestReport.Failure(failure.getTestIdentifier().getParentId().map(id -> id + ".").orElse("") + - failure.getTestIdentifier().getDisplayName(), + return new TestReport.Failure(VespaJunitLogListener.toString(failure.getTestIdentifier().getUniqueIdObject()), failure.getException()); }) .collect(Collectors.toList()); 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 index 90a5775f8c2..b49f4e5e431 100644 --- 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 @@ -4,6 +4,7 @@ package com.yahoo.vespa.testrunner; import ai.vespa.hosted.cd.InconclusiveTestException; import org.junit.platform.engine.TestExecutionResult; +import org.junit.platform.engine.UniqueId; import org.junit.platform.engine.reporting.ReportEntry; import org.junit.platform.launcher.TestExecutionListener; import org.junit.platform.launcher.TestIdentifier; @@ -30,7 +31,7 @@ import static java.util.stream.Collectors.joining; class VespaJunitLogListener implements TestExecutionListener { - private final Map<String, NavigableMap<Status, List<String>>> results = new ConcurrentSkipListMap<>(); + private final Map<String, NavigableMap<Status, List<UniqueId>>> results = new ConcurrentSkipListMap<>(); private final Consumer<LogRecord> logger; VespaJunitLogListener(Consumer<LogRecord> logger) { @@ -60,7 +61,7 @@ class VespaJunitLogListener implements TestExecutionListener { testIdentifier.getParentId().ifPresent(parent -> { results.computeIfAbsent(parent, __ -> new ConcurrentSkipListMap<>()) .computeIfAbsent(Status.skipped, __ -> new CopyOnWriteArrayList<>()) - .add(testIdentifier.getDisplayName()); + .add(testIdentifier.getUniqueIdObject()); }); } @@ -68,7 +69,7 @@ class VespaJunitLogListener implements TestExecutionListener { public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) { if (testIdentifier.isContainer()) { if (testIdentifier.getParentIdObject().isPresent()) { - NavigableMap<Status, List<String>> children = results.getOrDefault(testIdentifier.getUniqueId(), emptyNavigableMap()); + NavigableMap<Status, List<UniqueId>> children = results.getOrDefault(testIdentifier.getUniqueId(), emptyNavigableMap()); Level level = children.containsKey(Status.failed) ? SEVERE : INFO; log(level, "Tests in " + testIdentifier.getDisplayName() + " done: " + @@ -76,9 +77,9 @@ class VespaJunitLogListener implements TestExecutionListener { } else { Map<Status, List<String>> testResults = new HashMap<>(); - results.forEach((parent, results) -> results.forEach((status, tests) -> tests.forEach(test -> testResults.computeIfAbsent(status, __ -> new ArrayList<>()) - .add(parent + "." + test)))); - log(INFO, "Done running " + testResults.values().stream().mapToInt(List::size).sum() + " tests:"); + results.forEach((__, results) -> results.forEach((status, tests) -> tests.forEach(test -> testResults.computeIfAbsent(status, ___ -> new ArrayList<>()) + .add(toString(test))))); + log(INFO, "Done running " + testResults.values().stream().mapToInt(List::size).sum() + " tests."); testResults.forEach((status, tests) -> { if (status != Status.successful) log(status == Status.failed ? SEVERE : status == Status.inconclusive ? INFO : WARNING, @@ -104,12 +105,16 @@ class VespaJunitLogListener implements TestExecutionListener { testIdentifier.getParentId().ifPresent(parent -> { results.computeIfAbsent(parent, __ -> new ConcurrentSkipListMap<>()) .computeIfAbsent(status, __ -> new CopyOnWriteArrayList<>()) - .add(testIdentifier.getDisplayName()); + .add(testIdentifier.getUniqueIdObject()); }); log(level, "Test " + status + ": " + testIdentifier.getDisplayName(), testExecutionResult.getThrowable().orElse(null)); } } + static String toString(UniqueId testId) { + return testId.getSegments().stream().skip(1).map(UniqueId.Segment::getValue).collect(joining(".")); + } + @Override public void reportingEntryPublished(TestIdentifier testIdentifier, ReportEntry report) { String message = report.getKeyValuePairs().keySet().equals(Set.of("value")) |