mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
restore containing class detection for parameterized tests (IDEA-174476)
This commit is contained in:
+4
-1
@@ -24,6 +24,7 @@ import com.intellij.execution.actions.ConfigurationContext;
|
||||
import com.intellij.execution.actions.ConfigurationFromContext;
|
||||
import com.intellij.execution.configurations.ConfigurationType;
|
||||
import com.intellij.execution.junit.InheritorChooser;
|
||||
import com.intellij.execution.junit2.PsiMemberParameterizedLocation;
|
||||
import com.intellij.execution.junit2.info.MethodLocation;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -109,7 +110,9 @@ public abstract class AbstractInClassConfigurationProducer<T extends JavaTestCon
|
||||
}
|
||||
else if (element instanceof PsiMember) {
|
||||
psiClass = contextLocation instanceof MethodLocation ? ((MethodLocation)contextLocation).getContainingClass()
|
||||
: ((PsiMember)element).getContainingClass();
|
||||
: contextLocation instanceof PsiMemberParameterizedLocation
|
||||
? ((PsiMemberParameterizedLocation)contextLocation).getContainingClass()
|
||||
: ((PsiMember)element).getContainingClass();
|
||||
if (isTestClass(psiClass)) {
|
||||
break;
|
||||
}
|
||||
|
||||
+26
@@ -21,6 +21,7 @@ import com.intellij.execution.RunnerAndConfigurationSettings;
|
||||
import com.intellij.execution.actions.ConfigurationContext;
|
||||
import com.intellij.execution.application.ApplicationConfiguration;
|
||||
import com.intellij.execution.junit.*;
|
||||
import com.intellij.execution.junit2.PsiMemberParameterizedLocation;
|
||||
import com.intellij.execution.junit2.info.MethodLocation;
|
||||
import com.intellij.execution.testframework.TestSearchScope;
|
||||
import com.intellij.java.execution.BaseConfigurationTestCase;
|
||||
@@ -91,6 +92,31 @@ public class ContextConfigurationTest extends BaseConfigurationTestCase {
|
||||
checkPackage(packageName, configuration);
|
||||
checkGeneretedName(configuration, shortName + "." + METHOD_NAME);
|
||||
}
|
||||
|
||||
//fake parameterized by providing corresponding location
|
||||
public void testMethodInAbstractParameterizedTest() throws Exception {
|
||||
String packageName = "abstractTests";
|
||||
String shortName = "AbstractTestImpl1";
|
||||
String qualifiedName = StringUtil.getQualifiedName(packageName, shortName);
|
||||
PsiClass psiClass = findClass(getModule1(), qualifiedName);
|
||||
PsiMethod testMethod = psiClass.findMethodsByName(METHOD_NAME, true)[0];
|
||||
|
||||
MapDataContext dataContext = new MapDataContext();
|
||||
dataContext.put(CommonDataKeys.PROJECT, myProject);
|
||||
if (LangDataKeys.MODULE.getData(dataContext) == null) {
|
||||
dataContext.put(LangDataKeys.MODULE, ModuleUtilCore.findModuleForPsiElement(testMethod));
|
||||
}
|
||||
dataContext.put(Location.DATA_KEY, new PsiMemberParameterizedLocation(myProject, testMethod, psiClass, "param"));
|
||||
|
||||
ConfigurationContext context = ConfigurationContext.getFromContext(dataContext);
|
||||
RunnerAndConfigurationSettings settings = context.getConfiguration();
|
||||
JUnitConfiguration configuration = (JUnitConfiguration)settings.getConfiguration();
|
||||
|
||||
checkClassName(qualifiedName, configuration);
|
||||
checkMethodName(METHOD_NAME, configuration);
|
||||
checkPackage(packageName, configuration);
|
||||
checkGeneretedName(configuration, shortName + "." + METHOD_NAME);
|
||||
}
|
||||
|
||||
public void testJUnitMethodTest() {
|
||||
PsiClass psiClass = findClass(getModule1(), CLASS_NAME);
|
||||
|
||||
Reference in New Issue
Block a user