This is an automated email from the ASF dual-hosted git repository. sor pushed a commit to branch SUREFIRE-1603 in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit 37c4db5ae2f3939a1111440643e0d6538c31dd1f Author: Christian Stein <sormu...@gmail.com> AuthorDate: Sun Dec 2 18:44:08 2018 +0100 [SUREFIRE-1603] Handle JUnit Platform TestReport entries WORK-IN-PROGRESS https://issues.apache.org/jira/browse/SUREFIRE-1603 --- .../surefire/junitplatform/RunListenerAdapter.java | 26 ++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java index 85227f3..177123e 100644 --- a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java +++ b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java @@ -23,6 +23,9 @@ import static org.apache.maven.surefire.report.SimpleReportEntry.ignored; import static org.junit.platform.engine.TestExecutionResult.Status.ABORTED; import static org.junit.platform.engine.TestExecutionResult.Status.FAILED; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -33,6 +36,7 @@ import org.apache.maven.surefire.report.SimpleReportEntry; import org.apache.maven.surefire.report.StackTraceWriter; import org.junit.platform.engine.TestExecutionResult; import org.junit.platform.engine.TestSource; +import org.junit.platform.engine.reporting.ReportEntry; import org.junit.platform.engine.support.descriptor.ClassSource; import org.junit.platform.engine.support.descriptor.MethodSource; import org.junit.platform.launcher.TestExecutionListener; @@ -53,6 +57,8 @@ final class RunListenerAdapter private Set<TestIdentifier> testSetNodes = ConcurrentHashMap.newKeySet(); + private Map<TestIdentifier, List<ReportEntry>> reportEntries = new ConcurrentHashMap<>(); + RunListenerAdapter( RunListener runListener ) { this.runListener = runListener; @@ -113,10 +119,18 @@ final class RunListenerAdapter completeTestSetIfNecessary( testIdentifier ); } + @Override + public void reportingEntryPublished( TestIdentifier testIdentifier, ReportEntry entry ) + { + List<ReportEntry> entries = reportEntries.computeIfAbsent( testIdentifier, key -> new ArrayList<>() ); + entries.add( entry ); + } + private void updateTestPlan( TestPlan testPlan ) { this.testPlan = testPlan; testSetNodes.clear(); + reportEntries.clear(); } private void ensureTestSetStarted( TestIdentifier testIdentifier ) @@ -167,6 +181,7 @@ final class RunListenerAdapter { runListener.testSetCompleted( createTestSetReportEntry( testIdentifier ) ); testSetNodes.remove( testIdentifier ); + reportEntries.remove( testIdentifier ); } private void reportFailedTest( @@ -185,8 +200,15 @@ final class RunListenerAdapter private SimpleReportEntry createTestSetReportEntry( TestIdentifier testIdentifier ) { - return new SimpleReportEntry( - JUnitPlatformProvider.class.getName(), testIdentifier.getLegacyReportingName() ); + String source = JUnitPlatformProvider.class.getName(); + String name = testIdentifier.getLegacyReportingName(); + List<ReportEntry> entries = reportEntries.get( testIdentifier ); + if (entries != null) + { + String message = "TODO Unroll " + entries.size() + " report(s)."; + return new SimpleReportEntry( source, name , message ); + } + return new SimpleReportEntry( source, name ); } private SimpleReportEntry createReportEntry( TestIdentifier testIdentifier )