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 )