diff options
Diffstat (limited to 'plugins/gradle/src/org')
2 files changed, 16 insertions, 5 deletions
diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleScriptType.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleScriptType.java index e7795a0621d2..d17b9fdea764 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleScriptType.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/config/GradleScriptType.java @@ -261,9 +261,14 @@ public class GradleScriptType extends GroovyRunnableScriptType { final String scriptPath = configuration.getScriptPath(); if (scriptPath == null) { - throw new CantRunException("Target script is undefined"); + throw new CantRunException("Target script or gradle project path is undefined"); + } + + if(new File(scriptPath).isFile()) { + params.getProgramParametersList().add("--build-file"); + } else { + params.getProgramParametersList().add("--project-dir"); } - params.getProgramParametersList().add("--project-dir"); params.getProgramParametersList().add(FileUtil.toSystemDependentName(scriptPath)); params.getProgramParametersList().addParametersString(configuration.getProgramParameters()); params.getProgramParametersList().addParametersString(scriptParameters); diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/test/runner/TestMethodGradleConfigurationProducer.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/test/runner/TestMethodGradleConfigurationProducer.java index 5993480333e5..f4dec6283300 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/test/runner/TestMethodGradleConfigurationProducer.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/test/runner/TestMethodGradleConfigurationProducer.java @@ -107,7 +107,8 @@ public class TestMethodGradleConfigurationProducer extends RunConfigurationProdu if (!configuration.getSettings().getTaskNames().containsAll(TASKS_TO_RUN)) return false; final String scriptParameters = configuration.getSettings().getScriptParameters() + ' '; - return scriptParameters.contains(String.format("--tests %s.%s ", containingClass.getQualifiedName(), psiMethod.getName())); + final String testFilter = creatTestFilter(containingClass, psiMethod); + return scriptParameters.contains(testFilter); } @Override @@ -163,11 +164,16 @@ public class TestMethodGradleConfigurationProducer extends RunConfigurationProdu StringBuilder buf = new StringBuilder(); for (PsiClass aClass : containingClasses) { - buf.append(String.format("--tests %s.%s ", aClass.getQualifiedName(), psiMethod.getName())); + buf.append(creatTestFilter(aClass, psiMethod)); } - configuration.getSettings().setScriptParameters(buf.toString()); + configuration.getSettings().setScriptParameters(buf.toString().trim()); configuration.setName(psiMethod.getName()); return true; } + + private static String creatTestFilter(@NotNull PsiClass aClass, @NotNull PsiMethod psiMethod) { + String testFilterPattern = aClass.getQualifiedName() + '.' + psiMethod.getName(); + return String.format("--tests \"%s\" ", StringUtil.replaceChar(testFilterPattern, '\"', '*')); + } } |