You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by so...@apache.org on 2018/12/02 17:44:21 UTC

[maven-surefire] 01/01: [SUREFIRE-1603] Handle JUnit Platform TestReport entries

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 <so...@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 )