pattern configurations: distinguish set parameters (IDEA-176937)

This commit is contained in:
Anna Kozlova
2017-08-07 06:37:45 +02:00
parent b20523616e
commit cb0dff0799
3 changed files with 10 additions and 3 deletions
@@ -105,9 +105,7 @@ public abstract class AbstractJavaTestConfigurationProducer<T extends JavaTestCo
? ((CommonJavaRunConfigurationParameters)predefinedConfiguration).getVMParameters()
: null;
if (vmParameters != null && !Comparing.strEqual(vmParameters, configuration.getVMParameters())) return false;
String paramSetName = contextLocation instanceof PsiMemberParameterizedLocation
? configuration.prepareParameterizedParameter(((PsiMemberParameterizedLocation)contextLocation).getParamSetName()) : null;
if (paramSetName != null && !Comparing.strEqual(paramSetName, configuration.getProgramParameters())) return false;
if (differentParamSet(configuration, contextLocation)) return false;
if (configuration.isConfiguredByElement(element)) {
final Module configurationModule = configuration.getConfigurationModule().getModule();
@@ -118,6 +116,13 @@ public abstract class AbstractJavaTestConfigurationProducer<T extends JavaTestCo
return false;
}
protected boolean differentParamSet(T configuration, Location contextLocation) {
String paramSetName = contextLocation instanceof PsiMemberParameterizedLocation
? configuration.prepareParameterizedParameter(((PsiMemberParameterizedLocation)contextLocation).getParamSetName()) : null;
if (paramSetName != null && !Comparing.strEqual(paramSetName, configuration.getProgramParameters())) return true;
return false;
}
public Module findModule(ModuleBasedConfiguration configuration, Module contextModule, Set<String> patterns) {
return JavaExecutionUtil.findModule(contextModule, patterns, configuration.getProject(), psiClass -> isTestClass(psiClass));
@@ -75,6 +75,7 @@ public class PatternConfigurationProducer extends AbstractPatternBasedConfigurat
public boolean isConfigurationFromContext(JUnitConfiguration unitConfiguration, ConfigurationContext context) {
final TestObject testobject = unitConfiguration.getTestObject();
if (testobject instanceof TestsPattern) {
if (differentParamSet(unitConfiguration, context.getLocation())) return false;
final Set<String> patterns = unitConfiguration.getPersistentData().getPatterns();
if (isConfiguredFromContext(context, patterns)) return true;
}
@@ -63,6 +63,7 @@ public abstract class AbstractTestNGPatternConfigurationProducer extends Abstrac
public boolean isConfigurationFromContext(TestNGConfiguration testNGConfiguration, ConfigurationContext context) {
final String type = testNGConfiguration.getPersistantData().TEST_OBJECT;
if (Comparing.equal(type, TestType.PATTERN.getType())) {
if (differentParamSet(testNGConfiguration, context.getLocation())) return false;
return isConfiguredFromContext(context, testNGConfiguration.getPersistantData().getPatterns());
}
return false;