mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
force using junit3 starter for single tests in junit4.5 as the filtering was broken till 4.6 (IDEA-84031)
This commit is contained in:
@@ -25,9 +25,11 @@ 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 {
|
||||
@@ -43,6 +45,7 @@ class TestMethod extends TestObject {
|
||||
final JUnitConfiguration.Data data = myConfiguration.getPersistentData();
|
||||
RunConfigurationModule module = myConfiguration.getConfigurationModule();
|
||||
configureModule(getJavaParameters(), module, data.getMainClassName());
|
||||
addJUnit3Parameter(data, module.getProject());
|
||||
getJavaParameters().getProgramParametersList().add(data.getMainClassName() + "," + data.getMethodName());
|
||||
}
|
||||
|
||||
@@ -50,6 +53,22 @@ class TestMethod extends TestObject {
|
||||
super.initialize();
|
||||
}
|
||||
|
||||
protected void addJUnit3Parameter(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)) {
|
||||
return;
|
||||
}
|
||||
final String methodName = data.getMethodName();
|
||||
final PsiMethod[] methods = psiClass.findMethodsByName(methodName, true);
|
||||
for (PsiMethod method : methods) {
|
||||
if (JUnitUtil.isTestAnnotated(method)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
myJavaParameters.getProgramParametersList().add(JUnitStarter.JUNIT3_PARAMETER);
|
||||
}
|
||||
|
||||
public String suggestActionName() {
|
||||
return ProgramRunnerUtil.shortenName(myConfiguration.getPersistentData().METHOD_NAME, 2) + "()";
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ import java.util.Vector;
|
||||
public class JUnitStarter {
|
||||
public static final int VERSION = 5;
|
||||
public static final String IDE_VERSION = "-ideVersion";
|
||||
public static final String JUNIT3_PARAMETER = "-junit3";
|
||||
private static final String SOCKET = "-socket";
|
||||
private static String ourForkMode;
|
||||
private static String ourCommandFileName;
|
||||
@@ -64,12 +65,16 @@ public class JUnitStarter {
|
||||
}
|
||||
|
||||
private static boolean processParameters(Vector args, final List listeners) {
|
||||
boolean isJunit4 = true;
|
||||
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(JUNIT3_PARAMETER)){
|
||||
isJunit4 = false;
|
||||
}
|
||||
else {
|
||||
if (arg.startsWith("@@@")) {
|
||||
final int pos = arg.indexOf(',');
|
||||
@@ -116,6 +121,14 @@ public class JUnitStarter {
|
||||
String arg = (String)result.get(i);
|
||||
args.addElement(arg);
|
||||
}
|
||||
if (!isJunit4) {
|
||||
try {
|
||||
Class.forName("org.junit.runner.Computer");
|
||||
}
|
||||
catch (ClassNotFoundException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
final String forceJUnit3 = System.getProperty("idea.force.junit3");
|
||||
if (forceJUnit3 != null && Boolean.valueOf(forceJUnit3).booleanValue()) return false;
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user