From 08c20b63e0a2b701eb6a041e6ed43c343a049b80 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 2 Feb 2012 18:37:28 +0400 Subject: [PATCH] junit: avoid start via old junit3 starter (IDEA-80728) vm option: idea.force.junit3 --- .../intellij/execution/junit/TestClass.java | 12 +++---- .../intellij/execution/junit/TestMethod.java | 21 ------------ .../intellij/execution/junit/TestMethods.java | 17 ---------- .../intellij/execution/junit/TestObject.java | 1 - .../com/intellij/junit3/TestRunnerUtil.java | 1 - .../intellij/junit4/JUnit4TestRunnerUtil.java | 6 ---- .../rt/execution/junit/JUnitStarter.java | 32 ++++--------------- 7 files changed, 10 insertions(+), 80 deletions(-) diff --git a/plugins/junit/src/com/intellij/execution/junit/TestClass.java b/plugins/junit/src/com/intellij/execution/junit/TestClass.java index 25acd5c5fa45..5fe8a2b08b87 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestClass.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestClass.java @@ -16,7 +16,10 @@ package com.intellij.execution.junit; -import com.intellij.execution.*; +import com.intellij.execution.ExecutionBundle; +import com.intellij.execution.ExecutionException; +import com.intellij.execution.JavaExecutionUtil; +import com.intellij.execution.ProgramRunnerUtil; import com.intellij.execution.configurations.*; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Comparing; @@ -24,9 +27,7 @@ import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiMethod; import com.intellij.psi.PsiPackage; -import com.intellij.psi.search.GlobalSearchScope; import com.intellij.refactoring.listeners.RefactoringElementListener; -import com.intellij.rt.execution.junit.JUnitStarter; class TestClass extends TestObject { public TestClass(final Project project, @@ -41,11 +42,6 @@ class TestClass extends TestObject { final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); RunConfigurationModule module = myConfiguration.getConfigurationModule(); configureModule(myJavaParameters, module, data.getMainClassName()); - final Project project = module.getProject(); - final PsiClass psiClass = JavaExecutionUtil.findMainClass(project, data.getMainClassName(), GlobalSearchScope.allScope(project)); - if (JUnitUtil.isJUnit4TestClass(psiClass)) { - myJavaParameters.getProgramParametersList().add(JUnitStarter.JUNIT4_PARAMETER); - } myJavaParameters.getProgramParametersList().add(data.getMainClassName()); } diff --git a/plugins/junit/src/com/intellij/execution/junit/TestMethod.java b/plugins/junit/src/com/intellij/execution/junit/TestMethod.java index e84c0ff0bc7a..8ad7f6245043 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestMethod.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestMethod.java @@ -25,11 +25,9 @@ import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiMethod; import com.intellij.psi.PsiPackage; -import com.intellij.psi.search.GlobalSearchScope; import com.intellij.refactoring.listeners.RefactoringElementAdapter; import com.intellij.refactoring.listeners.RefactoringElementListener; import com.intellij.refactoring.listeners.UndoRefactoringElementListener; -import com.intellij.rt.execution.junit.JUnitStarter; import org.jetbrains.annotations.NotNull; class TestMethod extends TestObject { @@ -45,8 +43,6 @@ class TestMethod extends TestObject { final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); RunConfigurationModule module = myConfiguration.getConfigurationModule(); configureModule(getJavaParameters(), module, data.getMainClassName()); - addJUnit4Parameter(data, module.getProject()); - getJavaParameters().getProgramParametersList().add(data.getMainClassName() + "," + data.getMethodName()); } @@ -54,23 +50,6 @@ class TestMethod extends TestObject { super.initialize(); } - protected void addJUnit4Parameter(final JUnitConfiguration.Data data, Project project) { - final PsiClass psiClass = JavaExecutionUtil.findMainClass(project, data.getMainClassName(), GlobalSearchScope.allScope(project)); - LOG.assertTrue(psiClass != null); - if (JUnitUtil.isJUnit4TestClass(psiClass)) { - myJavaParameters.getProgramParametersList().add(JUnitStarter.JUNIT4_PARAMETER); - return; - } - final String methodName = data.getMethodName(); - PsiMethod[] methods = psiClass.findMethodsByName(methodName, true); - for (PsiMethod method : methods) { - if (JUnitUtil.isTestAnnotated(method)) { - myJavaParameters.getProgramParametersList().add(JUnitStarter.JUNIT4_PARAMETER); - break; - } - } - } - public String suggestActionName() { return ProgramRunnerUtil.shortenName(myConfiguration.getPersistentData().METHOD_NAME, 2) + "()"; } diff --git a/plugins/junit/src/com/intellij/execution/junit/TestMethods.java b/plugins/junit/src/com/intellij/execution/junit/TestMethods.java index 46610b5decb1..14fe7cb6cbcf 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestMethods.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestMethods.java @@ -33,7 +33,6 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiMethod; -import com.intellij.rt.execution.junit.JUnitStarter; import com.intellij.util.Function; import java.util.Collection; @@ -58,7 +57,6 @@ public class TestMethods extends TestMethod { final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); RunConfigurationModule module = myConfiguration.getConfigurationModule(); final Project project = module.getProject(); - addJUnit4Parameter(data, project); final ExecutionException[] exception = new ExecutionException[1]; ApplicationManager.getApplication().runReadAction(new Runnable() { public void run() { @@ -92,21 +90,6 @@ public class TestMethods extends TestMethod { }, data.getPackageName(), true, false); } - protected void addJUnit4Parameter(final JUnitConfiguration.Data data, Project project) { - for (AbstractTestProxy failedTest : myFailedTests) { - Location location = failedTest.getLocation(project); - if (!(location instanceof MethodLocation)) continue; - if (JUnitUtil.isJUnit4TestClass(((MethodLocation)location).getContainingClass())) { - myJavaParameters.getProgramParametersList().add(JUnitStarter.JUNIT4_PARAMETER); - return; - } - PsiMethod method = ((MethodLocation)location).getPsiElement(); - if (JUnitUtil.isTestAnnotated(method)) { - myJavaParameters.getProgramParametersList().add(JUnitStarter.JUNIT4_PARAMETER); - return; - } - } - } public String suggestActionName() { return ActionsBundle.message("action.RerunFailedTests.text"); diff --git a/plugins/junit/src/com/intellij/execution/junit/TestObject.java b/plugins/junit/src/com/intellij/execution/junit/TestObject.java index b3a288099cb6..c8ba4cafcc8a 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestObject.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestObject.java @@ -399,7 +399,6 @@ public abstract class TestObject implements JavaCommandLine { final PrintWriter writer = new PrintWriter(myTempFile, "UTF-8"); try { - writer.println(junit4 ? JUnitStarter.JUNIT4_PARAMETER : "-junit3"); writer.println(packageName); final List testNames = new ArrayList(); for (final T element : elements) { diff --git a/plugins/junit_rt/src/com/intellij/junit3/TestRunnerUtil.java b/plugins/junit_rt/src/com/intellij/junit3/TestRunnerUtil.java index db09301dbab4..e6b94fb176b8 100644 --- a/plugins/junit_rt/src/com/intellij/junit3/TestRunnerUtil.java +++ b/plugins/junit_rt/src/com/intellij/junit3/TestRunnerUtil.java @@ -51,7 +51,6 @@ public class TestRunnerUtil { BufferedReader reader = new BufferedReader(new FileReader(suiteClassName.substring(1))); Vector vector; try { - reader.readLine(); //skip junit4/junit3 parameter suiteName = reader.readLine(); vector = new Vector(); String line; diff --git a/plugins/junit_rt/src/com/intellij/junit4/JUnit4TestRunnerUtil.java b/plugins/junit_rt/src/com/intellij/junit4/JUnit4TestRunnerUtil.java index 95cf1181ab5d..75a4d4d32af7 100644 --- a/plugins/junit_rt/src/com/intellij/junit4/JUnit4TestRunnerUtil.java +++ b/plugins/junit_rt/src/com/intellij/junit4/JUnit4TestRunnerUtil.java @@ -17,8 +17,6 @@ package com.intellij.junit4; import org.junit.Ignore; import org.junit.internal.AssumptionViolatedException; -import org.junit.internal.builders.AllDefaultPossibilitiesBuilder; -import org.junit.internal.builders.AnnotatedBuilder; import org.junit.internal.requests.ClassRequest; import org.junit.internal.runners.model.EachTestNotifier; import org.junit.runner.Description; @@ -29,14 +27,11 @@ import org.junit.runner.manipulation.Filter; import org.junit.runner.notification.RunNotifier; import org.junit.runners.BlockJUnit4ClassRunner; import org.junit.runners.Parameterized; -import org.junit.runners.ParentRunner; import org.junit.runners.model.FrameworkMethod; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; -import java.lang.annotation.Annotation; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.text.MessageFormat; import java.util.*; @@ -60,7 +55,6 @@ public class JUnit4TestRunnerUtil { final Map classMethods = new HashMap(); BufferedReader reader = new BufferedReader(new FileReader(suiteClassName.substring(1))); try { - reader.readLine(); //skip junit4/junit3 parameter final String packageName = reader.readLine(); String line; 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 f492409c9e18..376f1e749890 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 @@ -32,7 +32,6 @@ import java.util.Vector; public class JUnitStarter { public static final int VERSION = 5; public static final String IDE_VERSION = "-ideVersion"; - public static final String JUNIT4_PARAMETER = "-junit4"; private static final String SOCKET = "-socket"; private static String ourForkMode; private static String ourCommandFileName; @@ -65,17 +64,12 @@ public class JUnitStarter { } private static boolean processParameters(Vector args, final List listeners) { - boolean isJunit4 = false; - String tempFilePath = null; Vector result = new Vector(args.size()); for (int i = 0; i < args.size(); i++) { String arg = (String)args.get(i); if (arg.startsWith(IDE_VERSION)) { //ignore } - else if (arg.equals(JUNIT4_PARAMETER)){ - isJunit4 = true; - } else { if (arg.startsWith("@@@")) { final int pos = arg.indexOf(','); @@ -96,8 +90,6 @@ public class JUnitStarter { } } continue; - } else if (arg.startsWith("@")) { - tempFilePath = arg.substring(1); } else if (arg.startsWith(SOCKET)) { final int port = Integer.parseInt(arg.substring(SOCKET.length())); try { @@ -114,37 +106,25 @@ public class JUnitStarter { e.printStackTrace(); } - isJunit4 = isJUnit4(isJunit4, tempFilePath); continue; } result.addElement(arg); } } - if (tempFilePath != null && !args.contains(SOCKET)) { - isJunit4 = isJUnit4(isJunit4, tempFilePath); - } args.removeAllElements(); for (int i = 0; i < result.size(); i++) { String arg = (String)result.get(i); args.addElement(arg); } - return isJunit4; - } - - private static boolean isJUnit4(boolean junit4, String tempFilePath) { + final String forceJUnit3 = System.getProperty("idea.force.junit3"); + if (forceJUnit3 != null && Boolean.valueOf(forceJUnit3).booleanValue()) return false; try { - BufferedReader reader = new BufferedReader(new FileReader(tempFilePath)); - try { - junit4 |= JUNIT4_PARAMETER.equals(reader.readLine()); - } - finally { - reader.close(); - } + Class.forName("org.junit.Test"); + return true; } - catch (IOException e) { - e.printStackTrace(); + catch (ClassNotFoundException e) { + return false; } - return junit4; } public static boolean checkVersion(String[] args, SegmentedOutputStream notifications) {