public void testClasspathConfiguration() throws CantRunException {
   JavaParameters parameters = new JavaParameters();
   RunConfigurationModule module = new JavaRunConfigurationModule(myProject, false);
   Module module1 = getModule1();
   Module module2 = getModule2();
   addDependency(module1, module2);
   Module module3 = getModule3();
   addDependency(module2, module3);
   addDependency(module1, module3);
   addOutputs(module1, 1);
   addOutputs(module2, 2);
   addOutputs(module3, 3);
   module.setModule(module1);
   parameters.configureByModule(module.getModule(), JavaParameters.JDK_AND_CLASSES_AND_TESTS);
   ArrayList<String> classPath = new ArrayList<>();
   StringTokenizer tokenizer =
       new StringTokenizer(parameters.getClassPath().getPathsString(), File.pathSeparator);
   while (tokenizer.hasMoreTokens()) {
     String token = tokenizer.nextToken();
     classPath.add(token);
   }
   CHECK.singleOccurence(classPath, getOutput(module1, false));
   CHECK.singleOccurence(classPath, getOutput(module1, false));
   CHECK.singleOccurence(classPath, getOutput(module1, true));
   CHECK.singleOccurence(classPath, getOutput(module2, false));
   CHECK.singleOccurence(classPath, getOutput(module2, true));
   CHECK.singleOccurence(classPath, getOutput(module3, false));
   CHECK.singleOccurence(classPath, getOutput(module3, true));
   CHECK.singleOccurence(classPath, getFSPath(findFile(MOCK_JUNIT)));
 }
 public void configureClasspath(final JavaParameters javaParameters) throws CantRunException {
   RunConfigurationModule module = getConfigurationModule();
   final String jreHome = isAlternativeJrePathEnabled() ? getAlternativeJrePath() : null;
   final int pathType = JavaParameters.JDK_AND_CLASSES_AND_TESTS;
   if (myData.getScope() == TestSearchScope.WHOLE_PROJECT) {
     JavaParametersUtil.configureProject(module.getProject(), javaParameters, pathType, jreHome);
   } else {
     JavaParametersUtil.configureModule(module, javaParameters, pathType, jreHome);
   }
 }
 @Override
 protected boolean isApplicableFor(@NotNull RunConfigurationBase configuration) {
   if (configuration instanceof ModuleBasedConfiguration
       && configuration instanceof CommonProgramRunConfigurationParameters) {
     final RunConfigurationModule runConfigurationModule =
         ((ModuleBasedConfiguration) configuration).getConfigurationModule();
     return ExternalSystemApiUtil.isExternalSystemAwareModule(
         GradleConstants.SYSTEM_ID, runConfigurationModule.getModule());
   }
   return false;
 }
 protected void configureClasspath(final JavaParameters javaParameters) throws CantRunException {
   RunConfigurationModule module = getConfiguration().getConfigurationModule();
   final String jreHome =
       getConfiguration().isAlternativeJrePathEnabled()
           ? getConfiguration().getAlternativeJrePath()
           : null;
   final int pathType = JavaParameters.JDK_AND_CLASSES_AND_TESTS;
   if (configureByModule(module.getModule())) {
     JavaParametersUtil.configureModule(module, javaParameters, pathType, jreHome);
   } else {
     JavaParametersUtil.configureProject(
         getConfiguration().getProject(), javaParameters, pathType, jreHome);
   }
 }
예제 #5
0
파일: TestMethods.java 프로젝트: jexp/idea2
 protected void initialize() throws ExecutionException {
   defaultInitialize();
   final JUnitConfiguration.Data data = myConfiguration.getPersistentData();
   RunConfigurationModule module = myConfiguration.getConfigurationModule();
   final Project project = module.getProject();
   addJUnit4Parameter(data, project);
   final ExecutionException[] exception = new ExecutionException[1];
   ApplicationManager.getApplication()
       .runReadAction(
           new Runnable() {
             public void run() {
               try {
                 myConfiguration.configureClasspath(myJavaParameters);
               } catch (CantRunException e) {
                 exception[0] = e;
               }
             }
           });
   if (exception[0] != null) throw exception[0];
   final LinkedHashMap<PsiMethod, TestInfo> methods = new LinkedHashMap<PsiMethod, TestInfo>();
   for (AbstractTestProxy failedTest : myFailedTests) {
     Location location = failedTest.getLocation(project);
     if (!(location instanceof MethodLocation)) continue;
     PsiElement psiElement = location.getPsiElement();
     LOG.assertTrue(psiElement instanceof PsiMethod);
     PsiMethod method = (PsiMethod) psiElement;
     methods.put(method, ((TestProxy) failedTest).getInfo());
   }
   addClassesListToJavaParameters(
       methods.keySet(),
       new Function<PsiElement, String>() {
         public String fun(PsiElement element) {
           if (element instanceof PsiMethod) {
             final PsiMethod method = (PsiMethod) element;
             final TestInfo testInfo = methods.get(method);
             return JavaExecutionUtil.getRuntimeQualifiedName(
                     ((MethodLocation) testInfo.getLocation(project)).getContainingClass())
                 + ","
                 + testInfo.getName();
           }
           return null;
         }
       },
       data.getPackageName(),
       true,
       false);
 }
 private static String getConfigurationName(PsiClass aClass, RunConfigurationModule module) {
   String qualifiedName = aClass.getQualifiedName();
   Project project = module.getProject();
   if (qualifiedName != null) {
     PsiClass psiClass =
         JavaPsiFacade.getInstance(project)
             .findClass(qualifiedName.replace('$', '.'), GlobalSearchScope.projectScope(project));
     if (psiClass != null) {
       return psiClass.getName();
     } else {
       int lastDot = qualifiedName.lastIndexOf('.');
       if (lastDot == -1 || lastDot == qualifiedName.length() - 1) {
         return qualifiedName;
       }
       return qualifiedName.substring(lastDot + 1, qualifiedName.length());
     }
   }
   return module.getModuleName();
 }
 @Override
 protected void validateConfiguration(
     @NotNull RunConfigurationBase configuration, boolean isExecution) throws Exception {
   super.validateConfiguration(configuration, isExecution);
   if (configuration instanceof ModuleBasedConfiguration
       && configuration instanceof CommonProgramRunConfigurationParameters) {
     final String workingDirectory =
         ((CommonProgramRunConfigurationParameters) configuration).getWorkingDirectory();
     if (("$" + PathMacroUtil.MODULE_DIR_MACRO_NAME + "$").equals(workingDirectory)) {
       final RunConfigurationModule runConfigurationModule =
           ((ModuleBasedConfiguration) configuration).getConfigurationModule();
       final String projectPath =
           ExternalSystemApiUtil.getExternalProjectPath(runConfigurationModule.getModule());
       if (StringUtil.isNotEmpty(projectPath)) {
         ((CommonProgramRunConfigurationParameters) configuration)
             .setWorkingDirectory(projectPath);
       }
     }
   }
 }