From a5e1d1faa35a254a05e5d25f7da925844f85f71d Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 23 May 2017 19:50:10 +0300 Subject: [PATCH] junit 5: fork mode for methods --- .../intellij/junit5/JUnit5IdeaTestRunner.java | 6 +++--- .../junit5/JUnit5TestExecutionListener.java | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/plugins/junit5_rt/src/com/intellij/junit5/JUnit5IdeaTestRunner.java b/plugins/junit5_rt/src/com/intellij/junit5/JUnit5IdeaTestRunner.java index 1a6e7571ebc4..943fbbfbd264 100644 --- a/plugins/junit5_rt/src/com/intellij/junit5/JUnit5IdeaTestRunner.java +++ b/plugins/junit5_rt/src/com/intellij/junit5/JUnit5IdeaTestRunner.java @@ -88,9 +88,9 @@ public class JUnit5IdeaTestRunner implements IdeaTestRunner { public String getStartDescription(Object child) { final TestIdentifier testIdentifier = (TestIdentifier)child; final String className = JUnit5TestExecutionListener.getClassName(testIdentifier); - final String methodName = JUnit5TestExecutionListener.getMethodName(testIdentifier); - if (methodName != null) { - return className + "#" + methodName; + final String methodSignature = JUnit5TestExecutionListener.getMethodSignature(testIdentifier); + if (methodSignature != null) { + return className + "," + methodSignature; } return className != null ? className : (testIdentifier).getDisplayName(); } diff --git a/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestExecutionListener.java b/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestExecutionListener.java index bbe5dd26f82e..b9ff3710e9c6 100644 --- a/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestExecutionListener.java +++ b/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestExecutionListener.java @@ -37,10 +37,7 @@ import java.io.File; import java.io.PrintStream; import java.io.PrintWriter; import java.io.StringWriter; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Set; +import java.util.*; public class JUnit5TestExecutionListener implements TestExecutionListener { private static final String NO_LOCATION_HINT = ""; @@ -99,7 +96,6 @@ public class JUnit5TestExecutionListener implements TestExecutionListener { @Override public void testPlanExecutionFinished(TestPlan testPlan) { - myTestPlan = null; } @Override @@ -164,7 +160,7 @@ public class JUnit5TestExecutionListener implements TestExecutionListener { myPrintStream.println("\n##teamcity[testFinished name=\'" + JUnit4TestListener.CLASS_CONFIGURATION + "\']"); } - final Set descendants = myTestPlan.getDescendants(testIdentifier); + final Set descendants = myTestPlan != null ? myTestPlan.getDescendants(testIdentifier) : Collections.emptySet(); if (!descendants.isEmpty() && myFinishCount == 0) { for (TestIdentifier childIdentifier : descendants) { testStarted(childIdentifier); @@ -373,4 +369,14 @@ public class JUnit5TestExecutionListener implements TestExecutionListener { return null; }).orElse(null); } + + static String getMethodSignature(TestIdentifier testIdentifier) { + return testIdentifier.getSource().map((source) -> { + if (source instanceof MethodSource) { + String parameterTypes = ((MethodSource)source).getMethodParameterTypes(); + return ((MethodSource)source).getMethodName() + (parameterTypes != null ? "(" + parameterTypes + ")" : ""); + } + return null; + }).orElse(null); + } }