mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
junit: make it possible to start pattern configuration with parameter from @Parameterized (IDEA-144608)
This commit is contained in:
+4
-1
@@ -21,6 +21,7 @@ import com.intellij.execution.actions.ConfigurationContext;
|
||||
import com.intellij.execution.configurations.ConfigurationType;
|
||||
import com.intellij.execution.configurations.ModuleBasedConfiguration;
|
||||
import com.intellij.execution.junit.JavaRunConfigurationProducerBase;
|
||||
import com.intellij.execution.junit2.PsiMemberParameterizedLocation;
|
||||
import com.intellij.execution.junit2.info.MethodLocation;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
@@ -193,7 +194,9 @@ public abstract class AbstractPatternBasedConfigurationProducer<T extends Module
|
||||
}
|
||||
else if (psiMember instanceof PsiMember) {
|
||||
final PsiClass containingClass = location instanceof MethodLocation
|
||||
? ((MethodLocation)location).getContainingClass(): ((PsiMember)psiMember).getContainingClass();
|
||||
? ((MethodLocation)location).getContainingClass()
|
||||
: location instanceof PsiMemberParameterizedLocation ? ((PsiMemberParameterizedLocation)location).getContainingClass()
|
||||
: ((PsiMember)psiMember).getContainingClass();
|
||||
assert containingClass != null;
|
||||
return ClassUtil.getJVMClassName(containingClass) + "," + ((PsiMember)psiMember).getName();
|
||||
} else if (psiMember instanceof PsiPackage) {
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
|
||||
package com.intellij.execution.junit;
|
||||
|
||||
import com.intellij.execution.Location;
|
||||
import com.intellij.execution.junit2.PsiMemberParameterizedLocation;
|
||||
import com.intellij.execution.junit2.info.MethodLocation;
|
||||
import com.intellij.execution.testframework.AbstractPatternBasedConfigurationProducer;
|
||||
import com.intellij.execution.actions.ConfigurationContext;
|
||||
import com.intellij.execution.actions.ConfigurationFromContext;
|
||||
@@ -61,6 +64,13 @@ public class PatternConfigurationProducer extends AbstractPatternBasedConfigurat
|
||||
data.TEST_OBJECT = JUnitConfiguration.TEST_PATTERN;
|
||||
data.setScope(setupPackageConfiguration(context, configuration, data.getScope()));
|
||||
configuration.setGeneratedName();
|
||||
final Location contextLocation = context.getLocation();
|
||||
if (contextLocation instanceof PsiMemberParameterizedLocation) {
|
||||
final String paramSetName = ((PsiMemberParameterizedLocation)contextLocation).getParamSetName();
|
||||
if (paramSetName != null) {
|
||||
configuration.setProgramParameters(paramSetName);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ public class JUnit4TestRunnerUtil {
|
||||
*/
|
||||
private static final ResourceBundle ourBundle = ResourceBundle.getBundle("RuntimeBundle");
|
||||
|
||||
public static Request buildRequest(String[] suiteClassNames, String name, boolean notForked) {
|
||||
public static Request buildRequest(String[] suiteClassNames, final String name, boolean notForked) {
|
||||
if (suiteClassNames.length == 0) {
|
||||
return null;
|
||||
}
|
||||
@@ -101,7 +101,15 @@ public class JUnit4TestRunnerUtil {
|
||||
public boolean shouldRun(Description description) {
|
||||
if (description.isTest()) {
|
||||
final Set methods = (Set)classMethods.get(JUnit4ReflectionUtil.getClassName(description));
|
||||
return methods == null || methods.contains(JUnit4ReflectionUtil.getMethodName(description));
|
||||
if (methods == null) {
|
||||
return true;
|
||||
}
|
||||
String methodName = JUnit4ReflectionUtil.getMethodName(description);
|
||||
if (methods.contains(methodName)) {
|
||||
return true;
|
||||
}
|
||||
return name != null && methodName.endsWith(name) &&
|
||||
methods.contains(methodName.substring(0, methodName.length() - name.length()));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
+9
@@ -71,6 +71,15 @@ public abstract class TestNGConfigurationProducer extends JavaRunConfigurationPr
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void setupConfigurationParamName(TestNGConfiguration configuration, Location contextLocation) {
|
||||
if (contextLocation instanceof PsiMemberParameterizedLocation) {
|
||||
final String paramSetName = ((PsiMemberParameterizedLocation)contextLocation).getParamSetName();
|
||||
if (paramSetName != null) {
|
||||
configuration.setProgramParameters(getInvocationNumber(paramSetName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String getInvocationNumber(String str) {
|
||||
return StringUtil.trimEnd(StringUtil.trimStart(str, "["), "]");
|
||||
|
||||
+1
-7
@@ -27,7 +27,6 @@ import com.intellij.execution.actions.ConfigurationContext;
|
||||
import com.intellij.execution.actions.ConfigurationFromContext;
|
||||
import com.intellij.execution.actions.RunConfigurationProducer;
|
||||
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;
|
||||
@@ -103,12 +102,7 @@ public class TestNGInClassConfigurationProducer extends TestNGConfigurationProdu
|
||||
}
|
||||
|
||||
final Location contextLocation = context.getLocation();
|
||||
if (contextLocation instanceof PsiMemberParameterizedLocation) {
|
||||
final String paramSetName = getInvocationNumber(((PsiMemberParameterizedLocation)contextLocation).getParamSetName());
|
||||
if (paramSetName != null) {
|
||||
configuration.setProgramParameters(paramSetName);
|
||||
}
|
||||
}
|
||||
setupConfigurationParamName(configuration, contextLocation);
|
||||
|
||||
PsiClass psiClass = null;
|
||||
PsiElement element = context.getPsiLocation();
|
||||
|
||||
+3
@@ -20,6 +20,8 @@
|
||||
*/
|
||||
package com.theoryinpractice.testng.configuration;
|
||||
|
||||
import com.intellij.execution.Location;
|
||||
import com.intellij.execution.junit2.PsiMemberParameterizedLocation;
|
||||
import com.intellij.execution.testframework.AbstractPatternBasedConfigurationProducer;
|
||||
import com.intellij.execution.actions.ConfigurationContext;
|
||||
import com.intellij.openapi.module.Module;
|
||||
@@ -65,6 +67,7 @@ public class TestNGPatternConfigurationProducer extends AbstractPatternBasedConf
|
||||
data.TEST_OBJECT = TestType.PATTERN.getType();
|
||||
data.setScope(setupPackageConfiguration(context, configuration, data.getScope()));
|
||||
configuration.setGeneratedName();
|
||||
TestNGConfigurationProducer.setupConfigurationParamName(configuration, context.getLocation());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
+10
-6
@@ -113,14 +113,18 @@ public class RerunFailedTestsAction extends JavaRerunFailedTestsAction {
|
||||
if (strings == null || strings.isEmpty()) {
|
||||
strings = new ArrayList<String>();
|
||||
}
|
||||
if (location instanceof PsiMemberParameterizedLocation) {
|
||||
final String paramSetName = ((PsiMemberParameterizedLocation)location).getParamSetName();
|
||||
if (paramSetName != null) {
|
||||
strings.add(TestNGConfigurationProducer.getInvocationNumber(paramSetName));
|
||||
}
|
||||
}
|
||||
setupParameterName(location, strings);
|
||||
psiMethods.put(psiMethod, strings);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void setupParameterName(Location location, List<String> strings) {
|
||||
if (location instanceof PsiMemberParameterizedLocation) {
|
||||
final String paramSetName = ((PsiMemberParameterizedLocation)location).getParamSetName();
|
||||
if (paramSetName != null) {
|
||||
strings.add(TestNGConfigurationProducer.getInvocationNumber(paramSetName));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user