Module (final Module contextModule, final Set<String> patterns, final Project project, Condition<? super PsiClass> isTestMethod) { final Set<Module> modules = new HashSet<>(); for (String className : patterns) { final PsiClass psiClass = findMainClass(project, className.contains(",") ? className.substring(0, className.indexOf(',')) : className, GlobalSearchScope.allScope(project)); if (psiClass != null && isTestMethod.value(psiClass)) { modules.add(ModuleUtilCore.findModuleForPsiElement(psiClass)); } } if (modules.size() == 1) { final Module nextModule = modules.iterator().next(); if (nextModule != null) { return nextModule; } } if (contextModule != null && modules.size() > 1) { final HashSet<Module> moduleDependencies = new HashSet<>(); ModuleUtilCore.getDependencies(contextModule, moduleDependencies); if (moduleDependencies.containsAll(modules)) { return contextModule; } return null; } return contextModule; }