Module (@NotNull Project project, @NotNull Module productionModule) { for (Module module : ModuleManager.getInstance(project).getModules()) { if (productionModule.equals(TestModuleProperties.getInstance(module).getProductionModule())) { return module; } } if (computeSuitableTestRootUrls(productionModule).isEmpty()) { final HashSet<Module> modules = new HashSet<>(); ModuleUtilCore.collectModulesDependsOn(productionModule, modules); modules.remove(productionModule); Module moduleWithTestRoot = StreamEx.of(modules) .collect(MoreCollectors.onlyOne(module -> !computeSuitableTestRootUrls(module).isEmpty())).orElse(null); if (moduleWithTestRoot != null) return moduleWithTestRoot; } return productionModule; }