From 5225f7a8f35adba6683b8583346701269ba09040 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 10 Mar 2016 15:06:25 +0100 Subject: [PATCH] junit 5 option to substitute junit_rt for old IDEAs --- .../src/com/intellij/junit5/JUnit5TestRunnerUtil.java | 8 +++++++- .../com/intellij/rt/execution/junit/JUnitStarter.java | 9 ++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestRunnerUtil.java b/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestRunnerUtil.java index a8d271f648db..d0b75d9d3327 100644 --- a/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestRunnerUtil.java +++ b/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestRunnerUtil.java @@ -15,7 +15,9 @@ */ package com.intellij.junit5; +import com.intellij.rt.execution.junit.JUnitStarter; import org.junit.gen5.engine.discovery.NameBasedSelector; +import org.junit.gen5.engine.discovery.PackageSelector; import org.junit.gen5.launcher.TestDiscoveryRequest; import org.junit.gen5.launcher.main.TestDiscoveryRequestBuilder; @@ -28,7 +30,7 @@ import java.util.List; import java.util.stream.Collectors; public class JUnit5TestRunnerUtil { - + public static TestDiscoveryRequest buildRequest(String[] suiteClassNames, String[] packageNameRef) { if (suiteClassNames.length == 0) { return null; @@ -54,6 +56,10 @@ public class JUnit5TestRunnerUtil { lines.add(line); } packageNameRef[0] = packageName.length() == 0 ? "" : packageName; + if (JUnitStarter.isJUnit5Preferred()) { + final PackageSelector selector = PackageSelector.forPackageName(packageName); + return builder.select(selector).build(); + } } finally { reader.close(); diff --git a/plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitStarter.java b/plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitStarter.java index 7e6dbbad721e..2166410daa29 100644 --- a/plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitStarter.java +++ b/plugins/junit_rt/src/com/intellij/rt/execution/junit/JUnitStarter.java @@ -36,6 +36,7 @@ public class JUnitStarter { public static final String JUNIT3_PARAMETER = "-junit3"; public static final String JUNIT4_PARAMETER = "-junit4"; public static final String JUNIT5_PARAMETER = "-junit5"; + public static final String JUNIT5_KEY = "idea.is.junit5"; private static final String SOCKET = "-socket"; public static final String JUNIT3_RUNNER_NAME = "com.intellij.junit3.JUnit3IdeaTestRunner"; @@ -83,7 +84,7 @@ public class JUnitStarter { } private static String processParameters(Vector args, final List listeners, String[] params) { - String agentName = JUNIT4_RUNNER_NAME; + String agentName = isJUnit5Preferred() ? JUNIT5_RUNNER_NAME : JUNIT4_RUNNER_NAME; Vector result = new Vector(args.size()); for (int i = 0; i < args.size(); i++) { String arg = (String)args.get(i); @@ -176,6 +177,12 @@ public class JUnitStarter { return agentName; } + public static boolean isJUnit5Preferred() { + final String useJUnit5 = System.getProperty(JUNIT5_KEY); + final Boolean boolValue = useJUnit5 == null ? null : Boolean.valueOf(useJUnit5); + return boolValue != null && boolValue.booleanValue(); + } + public static boolean checkVersion(String[] args, PrintStream printStream) { for (int i = 0; i < args.length; i++) { String arg = args[i]; -- 2.32.0