diff --git a/java/execution/impl/src/com/intellij/execution/JavaTestFrameworkRunnableState.java b/java/execution/impl/src/com/intellij/execution/JavaTestFrameworkRunnableState.java index 7af9d1e128cb..9ae4fbdc19dc 100644 --- a/java/execution/impl/src/com/intellij/execution/JavaTestFrameworkRunnableState.java +++ b/java/execution/impl/src/com/intellij/execution/JavaTestFrameworkRunnableState.java @@ -38,7 +38,7 @@ import java.io.IOException; import java.net.InetAddress; import java.net.ServerSocket; -public abstract class JavaTestFrameworkRunnableState extends JavaCommandLineState { +public abstract class JavaTestFrameworkRunnableState & CommonJavaRunConfigurationParameters> extends JavaCommandLineState { private static final Logger LOG = Logger.getInstance("#" + JavaTestFrameworkRunnableState.class.getName()); protected ServerSocket myServerSocket; protected File myTempFile; @@ -55,6 +55,8 @@ public abstract class JavaTestFrameworkRunnableState extends JavaCommandLineStat @NotNull protected abstract AbstractRerunFailedTestsAction createRerunFailedTestsAction(TestConsoleProperties testConsoleProperties, ConsoleView consoleView); + @NotNull protected abstract T getConfiguration(); + protected ExecutionResult startSMRunner(Executor executor, OSProcessHandler handler, RunConfigurationBase configuration, diff --git a/plugins/junit/src/com/intellij/execution/junit/TestCategory.java b/plugins/junit/src/com/intellij/execution/junit/TestCategory.java index ec0ad32cbcf0..c42b7e85431b 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestCategory.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestCategory.java @@ -35,13 +35,14 @@ class TestCategory extends TestPackage { @Override public void checkConfiguration() throws RuntimeConfigurationException { - JavaParametersUtil.checkAlternativeJRE(myConfiguration); - ProgramParametersUtil.checkWorkingDirectoryExist(myConfiguration, myConfiguration.getProject(), myConfiguration.getConfigurationModule().getModule()); - final String category = myConfiguration.getPersistentData().getCategory(); + JavaParametersUtil.checkAlternativeJRE(getConfiguration()); + ProgramParametersUtil.checkWorkingDirectoryExist( + getConfiguration(), getConfiguration().getProject(), getConfiguration().getConfigurationModule().getModule()); + final String category = getConfiguration().getPersistentData().getCategory(); if (category == null || category.isEmpty()) { throw new RuntimeConfigurationError("Category is not specified"); } - final JavaRunConfigurationModule configurationModule = myConfiguration.getConfigurationModule(); + final JavaRunConfigurationModule configurationModule = getConfiguration().getConfigurationModule(); if (getSourceScope() == null) { configurationModule.checkForWarning(); } @@ -50,7 +51,7 @@ class TestCategory extends TestPackage { @Override protected PsiPackage getPackage(JUnitConfiguration.Data data) throws CantRunException { - return JavaPsiFacade.getInstance(myConfiguration.getProject()).findPackage(""); + return JavaPsiFacade.getInstance(getConfiguration().getProject()).findPackage(""); } @Override diff --git a/plugins/junit/src/com/intellij/execution/junit/TestClass.java b/plugins/junit/src/com/intellij/execution/junit/TestClass.java index a6de55eaad68..2615b115c3e4 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestClass.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestClass.java @@ -33,15 +33,15 @@ class TestClass extends TestObject { @Override protected void initialize(JavaParameters javaParameters) throws ExecutionException { super.initialize(javaParameters); - final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); - RunConfigurationModule module = myConfiguration.getConfigurationModule(); + final JUnitConfiguration.Data data = getConfiguration().getPersistentData(); + RunConfigurationModule module = getConfiguration().getConfigurationModule(); configureModule(javaParameters, module, data.getMainClassName()); javaParameters.getProgramParametersList().add(data.getMainClassName()); } @Override public String suggestActionName() { - String name = myConfiguration.getPersistentData().MAIN_CLASS_NAME; + String name = getConfiguration().getPersistentData().MAIN_CLASS_NAME; if (name != null && name.endsWith(".")) { return name; } @@ -73,8 +73,8 @@ class TestClass extends TestObject { @Override public void checkConfiguration() throws RuntimeConfigurationException { super.checkConfiguration(); - final String testClassName = myConfiguration.getPersistentData().getMainClassName(); - final JavaRunConfigurationModule configurationModule = myConfiguration.getConfigurationModule(); + final String testClassName = getConfiguration().getPersistentData().getMainClassName(); + final JavaRunConfigurationModule configurationModule = getConfiguration().getConfigurationModule(); final PsiClass testClass = configurationModule.checkModuleAndClassName(testClassName, ExecutionBundle.message("no.test.class.specified.error.text")); if (!JUnitUtil.isTestClass(testClass)) { throw new RuntimeConfigurationWarning(ExecutionBundle.message("class.isnt.test.class.error.message", testClassName)); diff --git a/plugins/junit/src/com/intellij/execution/junit/TestDirectory.java b/plugins/junit/src/com/intellij/execution/junit/TestDirectory.java index b620c7fc916f..4b83decc9e67 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestDirectory.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestDirectory.java @@ -46,9 +46,10 @@ class TestDirectory extends TestPackage { @Override public SourceScope getSourceScope() { - final String dirName = myConfiguration.getPersistentData().getDirName(); + final String dirName = getConfiguration().getPersistentData().getDirName(); final VirtualFile file = LocalFileSystem.getInstance().findFileByPath(FileUtil.toSystemIndependentName(dirName)); - final GlobalSearchScope globalSearchScope = file == null ? GlobalSearchScope.EMPTY_SCOPE : GlobalSearchScopesCore.directoryScope(myConfiguration.getProject(), file, true); + final GlobalSearchScope globalSearchScope = file == null ? GlobalSearchScope.EMPTY_SCOPE : GlobalSearchScopesCore.directoryScope( + getConfiguration().getProject(), file, true); return new SourceScope() { @Override public GlobalSearchScope getGlobalSearchScope() { @@ -57,18 +58,19 @@ class TestDirectory extends TestPackage { @Override public Project getProject() { - return myConfiguration.getProject(); + return getConfiguration().getProject(); } @Override public GlobalSearchScope getLibrariesScope() { - final Module module = myConfiguration.getConfigurationModule().getModule(); - return module != null ? GlobalSearchScope.moduleWithLibrariesScope(module) : GlobalSearchScope.allScope(myConfiguration.getProject()); + final Module module = getConfiguration().getConfigurationModule().getModule(); + return module != null ? GlobalSearchScope.moduleWithLibrariesScope(module) : GlobalSearchScope.allScope( + getConfiguration().getProject()); } @Override public Module[] getModulesToCompile() { - final Collection validModules = myConfiguration.getValidModules(); + final Collection validModules = getConfiguration().getValidModules(); return validModules.toArray(new Module[validModules.size()]); } }; @@ -76,9 +78,10 @@ class TestDirectory extends TestPackage { @Override public void checkConfiguration() throws RuntimeConfigurationException { - JavaParametersUtil.checkAlternativeJRE(myConfiguration); - ProgramParametersUtil.checkWorkingDirectoryExist(myConfiguration, myConfiguration.getProject(), myConfiguration.getConfigurationModule().getModule()); - final String dirName = myConfiguration.getPersistentData().getDirName(); + JavaParametersUtil.checkAlternativeJRE(getConfiguration()); + ProgramParametersUtil.checkWorkingDirectoryExist( + getConfiguration(), getConfiguration().getProject(), getConfiguration().getConfigurationModule().getModule()); + final String dirName = getConfiguration().getPersistentData().getDirName(); if (dirName == null || dirName.isEmpty()) { throw new RuntimeConfigurationError("Directory is not specified"); } @@ -86,7 +89,7 @@ class TestDirectory extends TestPackage { if (file == null) { throw new RuntimeConfigurationWarning("Directory \'" + dirName + "\' is not found"); } - final Module module = myConfiguration.getConfigurationModule().getModule(); + final Module module = getConfiguration().getConfigurationModule().getModule(); if (module == null) { throw new RuntimeConfigurationError("Module to choose classpath from is not specified"); } @@ -99,7 +102,7 @@ class TestDirectory extends TestPackage { if (file == null) { throw new CantRunException("Directory \'" + dirName + "\' is not found"); } - final PsiDirectory directory = PsiManager.getInstance(myConfiguration.getProject()).findDirectory(file); + final PsiDirectory directory = PsiManager.getInstance(getConfiguration().getProject()).findDirectory(file); if (directory == null) { throw new CantRunException("Directory \'" + dirName + "\' is not found"); } diff --git a/plugins/junit/src/com/intellij/execution/junit/TestMethod.java b/plugins/junit/src/com/intellij/execution/junit/TestMethod.java index ab467fe3e80c..b9a44293742e 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestMethod.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestMethod.java @@ -38,8 +38,8 @@ class TestMethod extends TestObject { @Override protected void initialize(JavaParameters javaParameters) throws ExecutionException { defaultInitialize(javaParameters); - final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); - RunConfigurationModule module = myConfiguration.getConfigurationModule(); + final JUnitConfiguration.Data data = getConfiguration().getPersistentData(); + RunConfigurationModule module = getConfiguration().getConfigurationModule(); configureModule(javaParameters, module, data.getMainClassName()); addJUnit3Parameter(javaParameters, data, module.getProject()); javaParameters.getProgramParametersList().add(data.getMainClassName() + "," + data.getMethodName()); @@ -67,7 +67,7 @@ class TestMethod extends TestObject { @Override public String suggestActionName() { - return ProgramRunnerUtil.shortenName(myConfiguration.getPersistentData().METHOD_NAME, 2) + "()"; + return ProgramRunnerUtil.shortenName(getConfiguration().getPersistentData().METHOD_NAME, 2) + "()"; } @Override @@ -125,8 +125,8 @@ class TestMethod extends TestObject { @Override public void checkConfiguration() throws RuntimeConfigurationException { super.checkConfiguration(); - final JavaRunConfigurationModule configurationModule = myConfiguration.getConfigurationModule(); - final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); + final JavaRunConfigurationModule configurationModule = getConfiguration().getConfigurationModule(); + final JUnitConfiguration.Data data = getConfiguration().getPersistentData(); final String testClass = data.getMainClassName(); final PsiClass psiClass = configurationModule.checkModuleAndClassName(testClass, ExecutionBundle.message("no.test.class.specified.error.text")); diff --git a/plugins/junit/src/com/intellij/execution/junit/TestMethods.java b/plugins/junit/src/com/intellij/execution/junit/TestMethods.java index 25a5827c52d5..31e1f81ac4ca 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestMethods.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestMethods.java @@ -56,15 +56,15 @@ public class TestMethods extends TestMethod { @Override protected void initialize(final JavaParameters javaParameters) throws ExecutionException { defaultInitialize(javaParameters); - final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); - RunConfigurationModule module = myConfiguration.getConfigurationModule(); + final JUnitConfiguration.Data data = getConfiguration().getPersistentData(); + RunConfigurationModule module = getConfiguration().getConfigurationModule(); final Project project = module.getProject(); final ExecutionException[] exception = new ExecutionException[1]; ApplicationManager.getApplication().runReadAction(new Runnable() { @Override public void run() { try { - myConfiguration.configureClasspath(javaParameters); + getConfiguration().configureClasspath(javaParameters); } catch (ExecutionException e) { exception[0] = e; @@ -73,7 +73,7 @@ public class TestMethods extends TestMethod { }); if (exception[0] != null) throw exception[0]; final LinkedHashSet methods = new LinkedHashSet(); - final GlobalSearchScope searchScope = myConfiguration.getConfigurationModule().getSearchScope(); + final GlobalSearchScope searchScope = getConfiguration().getConfigurationModule().getSearchScope(); for (AbstractTestProxy failedTest : myFailedTests) { Location location = failedTest.getLocation(project, searchScope); if (location instanceof PsiMemberParameterizedLocation) { diff --git a/plugins/junit/src/com/intellij/execution/junit/TestObject.java b/plugins/junit/src/com/intellij/execution/junit/TestObject.java index 298f8ad7b7d7..0ee84a793382 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestObject.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestObject.java @@ -82,13 +82,13 @@ import java.io.IOException; import java.io.PrintWriter; import java.util.*; -public abstract class TestObject extends JavaTestFrameworkRunnableState { +public abstract class TestObject extends JavaTestFrameworkRunnableState { protected static final Logger LOG = Logger.getInstance(TestObject.class); private static final String MESSAGE = ExecutionBundle.message("configuration.not.speficied.message"); @NonNls private static final String JUNIT_TEST_FRAMEWORK_NAME = "JUnit"; - protected final JUnitConfiguration myConfiguration; + private final JUnitConfiguration myConfiguration; protected File myWorkingDirsFile = null; public File myListenersFile; @@ -141,34 +141,34 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { throws CantRunException { int classPathType = JavaParametersUtil.getClasspathType(configurationModule, mainClassName, true); JavaParametersUtil.configureModule(configurationModule, parameters, classPathType, - myConfiguration.isAlternativeJrePathEnabled() ? myConfiguration.getAlternativeJrePath() : null); + getConfiguration().isAlternativeJrePathEnabled() ? getConfiguration().getAlternativeJrePath() : null); } public void checkConfiguration() throws RuntimeConfigurationException{ - JavaParametersUtil.checkAlternativeJRE(myConfiguration); - ProgramParametersUtil.checkWorkingDirectoryExist(myConfiguration, myConfiguration.getProject(), - myConfiguration.getConfigurationModule().getModule()); + JavaParametersUtil.checkAlternativeJRE(getConfiguration()); + ProgramParametersUtil.checkWorkingDirectoryExist(getConfiguration(), getConfiguration().getProject(), + getConfiguration().getConfigurationModule().getModule()); } public SourceScope getSourceScope() { - return SourceScope.modulesWithDependencies(myConfiguration.getModules()); + return SourceScope.modulesWithDependencies(getConfiguration().getModules()); } protected void initialize(JavaParameters javaParameters) throws ExecutionException { - String parameters = myConfiguration.getProgramParameters(); - myConfiguration.getPersistentData().setProgramParameters(null); + String parameters = getConfiguration().getProgramParameters(); + getConfiguration().getPersistentData().setProgramParameters(null); try { - JavaParametersUtil.configureConfiguration(javaParameters, myConfiguration); + JavaParametersUtil.configureConfiguration(javaParameters, getConfiguration()); } finally { - myConfiguration.getPersistentData().setProgramParameters(parameters); + getConfiguration().getPersistentData().setProgramParameters(parameters); } javaParameters.setMainClass(JUnitConfiguration.JUNIT_START_CLASS); - final Module module = myConfiguration.getConfigurationModule().getModule(); + final Module module = getConfiguration().getConfigurationModule().getModule(); if (javaParameters.getJdk() == null){ javaParameters.setJdk(module != null ? ModuleRootManager.getInstance(module).getSdk() - : ProjectRootManager.getInstance(myConfiguration.getProject()).getProjectSdk()); + : ProjectRootManager.getInstance(getConfiguration().getProject()).getProjectSdk()); } configureAdditionalClasspath(javaParameters); @@ -177,7 +177,7 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { javaParameters.getProgramParametersList().add("@name" + parameters); } for (RunConfigurationExtension ext : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) { - ext.updateJavaParameters(myConfiguration, javaParameters, getRunnerSettings()); + ext.updateJavaParameters(getConfiguration(), javaParameters, getRunnerSettings()); } final Object[] listeners = Extensions.getExtensions(IDEAJUnitListener.EP_NAME); @@ -185,7 +185,7 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { for (final Object listener : listeners) { boolean enabled = true; for (RunConfigurationExtension ext : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) { - if (ext.isListenerDisabled(myConfiguration, listener, getRunnerSettings())) { + if (ext.isListenerDisabled(getConfiguration(), listener, getRunnerSettings())) { enabled = false; break; } @@ -218,7 +218,7 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { protected JavaParameters createJavaParameters() throws ExecutionException { JavaParameters javaParameters = new JavaParameters(); initialize(javaParameters); - final Module module = myConfiguration.getConfigurationModule().getModule(); + final Module module = getConfiguration().getConfigurationModule().getModule(); final Object[] patchers = Extensions.getExtensions(ExtensionPoints.JUNIT_PATCHER); for (Object patcher : patchers) { ((JUnitPatcher)patcher).patchJavaParameters(module, javaParameters); @@ -231,15 +231,15 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { public ExecutionResult execute(@NotNull final Executor executor, @NotNull final ProgramRunner runner) throws ExecutionException { final boolean smRunner = Registry.is("junit_sm_runner"); if (smRunner) { - return startSMRunner(executor, createHandler(executor), myConfiguration, getEnvironment()); + return startSMRunner(executor, createHandler(executor), getConfiguration(), getEnvironment()); } final JUnitProcessHandler handler = createHandler(executor); final RunnerSettings runnerSettings = getRunnerSettings(); - JavaRunConfigurationExtensionManager.getInstance().attachExtensionsToProcess(myConfiguration, handler, runnerSettings); + JavaRunConfigurationExtensionManager.getInstance().attachExtensionsToProcess(getConfiguration(), handler, runnerSettings); final TestProxy unboundOutputRoot = new TestProxy(new RootTestInfo()); - final JUnitConsoleProperties consoleProperties = new JUnitConsoleProperties(myConfiguration, executor); + final JUnitConsoleProperties consoleProperties = new JUnitConsoleProperties(getConfiguration(), executor); final JUnitTreeConsoleView consoleView = new JUnitTreeConsoleView(consoleProperties, getEnvironment(), unboundOutputRoot); - Disposer.register(myConfiguration.getProject(), consoleView); + Disposer.register(getConfiguration().getProject(), consoleView); consoleView.initUI(); consoleView.attachToProcess(handler); unboundOutputRoot.setPrinter(consoleView.getPrinter()); @@ -250,8 +250,8 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { if (!isRunning()) return; super.notifyStart(root); unboundOutputRoot.addChild(root); - if (myConfiguration.isSaveOutputToFile()) { - unboundOutputRoot.setOutputFilePath(myConfiguration.getOutputFilePath()); + if (getConfiguration().isSaveOutputToFile()) { + unboundOutputRoot.setOutputFilePath(getConfiguration().getOutputFilePath()); } final JUnitRunningModel model = getModel(); if (model != null) { @@ -350,9 +350,9 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { protected JUnitProcessHandler createHandler(Executor executor) throws ExecutionException { appendForkInfo(executor); - final String repeatMode = myConfiguration.getRepeatMode(); + final String repeatMode = getConfiguration().getRepeatMode(); if (!RepeatCount.ONCE.equals(repeatMode)) { - final int repeatCount = myConfiguration.getRepeatCount(); + final int repeatCount = getConfiguration().getRepeatCount(); final String countString = RepeatCount.N.equals(repeatMode) && repeatCount > 0 ? RepeatCount.getCountString(repeatCount) : repeatMode; @@ -362,22 +362,22 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { } private boolean forkPerModule() { - final String workingDirectory = myConfiguration.getWorkingDirectory(); - return JUnitConfiguration.TEST_PACKAGE.equals(myConfiguration.getPersistentData().TEST_OBJECT) && - myConfiguration.getPersistentData().getScope() != TestSearchScope.SINGLE_MODULE && + final String workingDirectory = getConfiguration().getWorkingDirectory(); + return JUnitConfiguration.TEST_PACKAGE.equals(getConfiguration().getPersistentData().TEST_OBJECT) && + getConfiguration().getPersistentData().getScope() != TestSearchScope.SINGLE_MODULE && ("$" + PathMacroUtil.MODULE_DIR_MACRO_NAME + "$").equals(workingDirectory) && spansMultipleModules(); } private boolean spansMultipleModules() { - final String qualifiedName = myConfiguration.getPackage(); + final String qualifiedName = getConfiguration().getPackage(); if (qualifiedName != null) { - final Project project = myConfiguration.getProject(); + final Project project = getConfiguration().getProject(); final PsiPackage aPackage = JavaPsiFacade.getInstance(project).findPackage(qualifiedName); if (aPackage != null) { - final TestSearchScope scope = myConfiguration.getPersistentData().getScope(); + final TestSearchScope scope = getConfiguration().getPersistentData().getScope(); if (scope != null) { - final SourceScope sourceScope = scope.getSourceScope(myConfiguration); + final SourceScope sourceScope = scope.getSourceScope(getConfiguration()); if (sourceScope != null) { final GlobalSearchScope configurationSearchScope = GlobalSearchScopesCore.projectTestScope(project).intersectWith( sourceScope.getGlobalSearchScope()); @@ -391,7 +391,7 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { } private void appendForkInfo(Executor executor) throws ExecutionException { - final String forkMode = myConfiguration.getForkMode(); + final String forkMode = getConfiguration().getForkMode(); if (Comparing.strEqual(forkMode, "none")) { if (forkPerModule()) { if (getRunnerSettings() != null) { @@ -417,7 +417,7 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { final File tempFile = FileUtil.createTempFile("command.line", "", true); final PrintWriter writer = new PrintWriter(tempFile, CharsetToolkit.UTF8); try { - if (JdkUtil.useDynamicClasspath(myConfiguration.getProject())) { + if (JdkUtil.useDynamicClasspath(getConfiguration().getProject())) { String classpath = PathUtil.getJarPathForClass(CommandLineWrapper.class); final String utilRtPath = PathUtil.getJarPathForClass(StringUtilRt.class); if (!classpath.equals(utilRtPath)) { @@ -483,7 +483,7 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { testNames.add(name); } } - final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); + final JUnitConfiguration.Data data = getConfiguration().getPersistentData(); if (perModule != null) { for (List perModuleClasses : perModule.values()) { Collections.sort(perModuleClasses); @@ -498,7 +498,7 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { JUnitStarter.printClassesList(testNames, packageName, category, myTempFile); if (perModule != null && perModule.size() > 1) { - final String classpath = myConfiguration.getPersistentData().getScope() == TestSearchScope.WHOLE_PROJECT + final String classpath = getConfiguration().getPersistentData().getScope() == TestSearchScope.WHOLE_PROJECT ? null : javaParameters.getClassPath().getPathsString(); final PrintWriter wWriter = new PrintWriter(myWorkingDirsFile, CharsetToolkit.UTF8); @@ -512,7 +512,8 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { final JavaParameters parameters = new JavaParameters(); configureAdditionalClasspath(parameters); JavaParametersUtil.configureModule(module, parameters, JavaParameters.JDK_AND_CLASSES_AND_TESTS, - myConfiguration.isAlternativeJrePathEnabled() ? myConfiguration.getAlternativeJrePath() : null); + getConfiguration().isAlternativeJrePathEnabled() ? getConfiguration() + .getAlternativeJrePath() : null); wWriter.println(parameters.getClassPath().getPathsString()); } else { wWriter.println(classpath); @@ -568,4 +569,9 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState { protected void passTempFile(ParametersList parametersList, String tempFilePath) { parametersList.add("@" + tempFilePath); } + + @NotNull + public JUnitConfiguration getConfiguration() { + return myConfiguration; + } } diff --git a/plugins/junit/src/com/intellij/execution/junit/TestPackage.java b/plugins/junit/src/com/intellij/execution/junit/TestPackage.java index 429fb898cac7..f32f6700187c 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestPackage.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestPackage.java @@ -38,10 +38,6 @@ import com.intellij.util.Function; import gnu.trove.THashSet; import org.jetbrains.annotations.Nullable; -import java.io.IOException; -import java.net.InetAddress; -import java.net.ServerSocket; - public class TestPackage extends TestObject { private boolean myFoundTests = true; @@ -51,8 +47,8 @@ public class TestPackage extends TestObject { @Override public SourceScope getSourceScope() { - final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); - return data.getScope().getSourceScope(myConfiguration); + final JUnitConfiguration.Data data = getConfiguration().getPersistentData(); + return data.getScope().getSourceScope(getConfiguration()); } @Override @@ -76,9 +72,9 @@ public class TestPackage extends TestObject { } public SearchForTestsTask createSearchingForTestsTask() { - final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); + final JUnitConfiguration.Data data = getConfiguration().getPersistentData(); - return new SearchForTestsTask(myConfiguration.getProject(), myServerSocket) { + return new SearchForTestsTask(getConfiguration().getProject(), myServerSocket) { private final THashSet myClasses = new THashSet(); @Override protected void search() { @@ -123,7 +119,7 @@ public class TestPackage extends TestObject { @Override protected void initialize(JavaParameters javaParameters) throws ExecutionException { super.initialize(javaParameters); - final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); + final JUnitConfiguration.Data data = getConfiguration().getPersistentData(); getClassFilter(data);//check if junit found configureClasspath(javaParameters); @@ -138,7 +134,7 @@ public class TestPackage extends TestObject { @Override public void run() { try { - myConfiguration.configureClasspath(javaParameters); + getConfiguration().configureClasspath(javaParameters); } catch (CantRunException e) { exception[0] = e; @@ -151,8 +147,8 @@ public class TestPackage extends TestObject { } protected TestClassFilter getClassFilter(final JUnitConfiguration.Data data) throws CantRunException { - Module module = myConfiguration.getConfigurationModule().getModule(); - if (myConfiguration.getPersistentData().getScope() == TestSearchScope.WHOLE_PROJECT){ + Module module = getConfiguration().getConfigurationModule().getModule(); + if (getConfiguration().getPersistentData().getScope() == TestSearchScope.WHOLE_PROJECT){ module = null; } final TestClassFilter classFilter = TestClassFilter.create(getSourceScope(), module); @@ -165,7 +161,7 @@ public class TestPackage extends TestObject { } protected PsiPackage getPackage(JUnitConfiguration.Data data) throws CantRunException { - final Project project = myConfiguration.getProject(); + final Project project = getConfiguration().getProject(); final String packageName = data.getPackageName(); final PsiManager psiManager = PsiManager.getInstance(project); final PsiPackage aPackage = JavaPsiFacade.getInstance(psiManager.getProject()).findPackage(packageName); @@ -175,7 +171,7 @@ public class TestPackage extends TestObject { @Override public String suggestActionName() { - final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); + final JUnitConfiguration.Data data = getConfiguration().getPersistentData(); if (data.getPackageName().trim().length() > 0) { return ExecutionBundle.message("test.in.scope.presentable.text", data.getPackageName()); } @@ -201,20 +197,20 @@ public class TestPackage extends TestObject { @Override public void checkConfiguration() throws RuntimeConfigurationException { super.checkConfiguration(); - final String packageName = myConfiguration.getPersistentData().getPackageName(); + final String packageName = getConfiguration().getPersistentData().getPackageName(); final PsiPackage aPackage = - JavaPsiFacade.getInstance(myConfiguration.getProject()).findPackage(packageName); + JavaPsiFacade.getInstance(getConfiguration().getProject()).findPackage(packageName); if (aPackage == null) { throw new RuntimeConfigurationWarning(ExecutionBundle.message("package.does.not.exist.error.message", packageName)); } if (getSourceScope() == null) { - myConfiguration.getConfigurationModule().checkForWarning(); + getConfiguration().getConfigurationModule().checkForWarning(); } } @Override protected void notifyByBalloon(JUnitRunningModel model, boolean started, final JUnitConsoleProperties consoleProperties) { - if (myFoundTests || !ResetConfigurationModuleAdapter.tryWithAnotherModule(myConfiguration, consoleProperties.isDebug())) { + if (myFoundTests || !ResetConfigurationModuleAdapter.tryWithAnotherModule(getConfiguration(), consoleProperties.isDebug())) { super.notifyByBalloon(model, started, consoleProperties); } } diff --git a/plugins/junit/src/com/intellij/execution/junit/TestsPattern.java b/plugins/junit/src/com/intellij/execution/junit/TestsPattern.java index c24d7d82e8be..6d947f7686d7 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestsPattern.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestsPattern.java @@ -50,7 +50,7 @@ public class TestsPattern extends TestPackage { @Override protected TestClassFilter getClassFilter(JUnitConfiguration.Data data) throws CantRunException { - return TestClassFilter.create(getSourceScope(), myConfiguration.getConfigurationModule().getModule(), data.getPatternPresentation()); + return TestClassFilter.create(getSourceScope(), getConfiguration().getConfigurationModule().getModule(), data.getPatternPresentation()); } @Override @@ -60,8 +60,8 @@ public class TestsPattern extends TestPackage { @Override public SearchForTestsTask createSearchingForTestsTask() { - final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); - final Project project = myConfiguration.getProject(); + final JUnitConfiguration.Data data = getConfiguration().getPersistentData(); + final Project project = getConfiguration().getProject(); final Set classNames = new LinkedHashSet(); for (String className : data.getPatterns()) { final PsiClass psiClass = getTestClass(project, className); @@ -101,16 +101,16 @@ public class TestsPattern extends TestPackage { } protected void configureClasspath(JavaParameters javaParameters) throws CantRunException { - final String jreHome = myConfiguration.isAlternativeJrePathEnabled() ? myConfiguration.getAlternativeJrePath() : null; + final String jreHome = getConfiguration().isAlternativeJrePathEnabled() ? getConfiguration().getAlternativeJrePath() : null; - final Module module = myConfiguration.getConfigurationModule().getModule(); + final Module module = getConfiguration().getConfigurationModule().getModule(); if (module != null) { JavaParametersUtil.configureModule(module, javaParameters, JavaParameters.JDK_AND_CLASSES_AND_TESTS, jreHome); } else { JavaParametersUtil - .configureProject(myConfiguration.getProject(), javaParameters, JavaParameters.JDK_AND_CLASSES_AND_TESTS, jreHome); + .configureProject(getConfiguration().getProject(), javaParameters, JavaParameters.JDK_AND_CLASSES_AND_TESTS, jreHome); } } @@ -180,15 +180,15 @@ public class TestsPattern extends TestPackage { @Override public void checkConfiguration() throws RuntimeConfigurationException { - final JUnitConfiguration.Data data = myConfiguration.getPersistentData(); + final JUnitConfiguration.Data data = getConfiguration().getPersistentData(); final Set patterns = data.getPatterns(); if (patterns.isEmpty()) { throw new RuntimeConfigurationWarning("No pattern selected"); } - final GlobalSearchScope searchScope = GlobalSearchScope.allScope(myConfiguration.getProject()); + final GlobalSearchScope searchScope = GlobalSearchScope.allScope(getConfiguration().getProject()); for (String pattern : patterns) { final String className = pattern.contains(",") ? StringUtil.getPackageName(pattern, ',') : pattern; - final PsiClass psiClass = JavaExecutionUtil.findMainClass(myConfiguration.getProject(), className, searchScope); + final PsiClass psiClass = JavaExecutionUtil.findMainClass(getConfiguration().getProject(), className, searchScope); if (psiClass != null && !JUnitUtil.isTestClass(psiClass)) { throw new RuntimeConfigurationWarning("Class " + className + " not a test"); } diff --git a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGRunnableState.java b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGRunnableState.java index 97c0d298b87a..fa5686feda87 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGRunnableState.java +++ b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGRunnableState.java @@ -68,7 +68,7 @@ import java.io.File; import java.io.IOException; import java.net.ServerSocket; -public class TestNGRunnableState extends JavaTestFrameworkRunnableState { +public class TestNGRunnableState extends JavaTestFrameworkRunnableState { private static final Logger LOG = Logger.getInstance("TestNG Runner"); private static final String TESTNG_TEST_FRAMEWORK_NAME = "TestNG"; private final TestNGConfiguration config; @@ -87,7 +87,7 @@ public class TestNGRunnableState extends JavaTestFrameworkRunnableState { @Override protected OSProcessHandler startProcess() throws ExecutionException { final OSProcessHandler handler = super.startProcess(); - final SearchingForTestsTask task = createSearchingForTestsTask(myServerSocket, config, myTempFile); + final SearchingForTestsTask task = createSearchingForTestsTask(myServerSocket, getConfiguration(), myTempFile); handler.addProcessListener(new ProcessAdapter() { @Override public void processTerminated(final ProcessEvent event) { @@ -108,15 +108,15 @@ public class TestNGRunnableState extends JavaTestFrameworkRunnableState { public ExecutionResult execute(@NotNull final Executor executor, @NotNull final ProgramRunner runner) throws ExecutionException { final boolean smRunner = Registry.is("testng_sm_runner"); if (smRunner) { - return startSMRunner(executor, startProcess(), config, getEnvironment()); + return startSMRunner(executor, startProcess(), getConfiguration(), getEnvironment()); } OSProcessHandler processHandler = startProcess(); final TreeRootNode unboundOutputRoot = new TreeRootNode(); - final TestNGConsoleView console = new TestNGConsoleView(config, getEnvironment(), unboundOutputRoot, executor); + final TestNGConsoleView console = new TestNGConsoleView(getConfiguration(), getEnvironment(), unboundOutputRoot, executor); console.initUI(); unboundOutputRoot.setPrinter(console.getPrinter()); Disposer.register(console, unboundOutputRoot); - JavaRunConfigurationExtensionManager.getInstance().attachExtensionsToProcess(config, processHandler, getEnvironment().getRunnerSettings()); + JavaRunConfigurationExtensionManager.getInstance().attachExtensionsToProcess(getConfiguration(), processHandler, getEnvironment().getRunnerSettings()); processHandler.addProcessListener(new ProcessAdapter() { private boolean myStarted = false; @@ -129,10 +129,10 @@ public class TestNGRunnableState extends JavaTestFrameworkRunnableState { @Override public void startNotified(final ProcessEvent event) { TestNGRemoteListener listener = new TestNGRemoteListener(console, unboundOutputRoot); - if (config.isSaveOutputToFile()) { - unboundOutputRoot.setOutputFilePath(config.getOutputFilePath()); + if (getConfiguration().isSaveOutputToFile()) { + unboundOutputRoot.setOutputFilePath(getConfiguration().getOutputFilePath()); } - client.prepareListening(listener, config.getProject(), port); + client.prepareListening(listener, getConfiguration().getProject(), port); myStarted = true; } @@ -195,15 +195,15 @@ public class TestNGRunnableState extends JavaTestFrameworkRunnableState { @Override protected JavaParameters createJavaParameters() throws ExecutionException { - final Project project = config.getProject(); + final Project project = getConfiguration().getProject(); final JavaParameters javaParameters = new JavaParameters(); - javaParameters.setupEnvs(config.getPersistantData().getEnvs(), config.getPersistantData().PASS_PARENT_ENVS); + javaParameters.setupEnvs(getConfiguration().getPersistantData().getEnvs(), getConfiguration().getPersistantData().PASS_PARENT_ENVS); javaParameters.setMainClass("org.testng.RemoteTestNGStarter"); - javaParameters.setWorkingDirectory(config.getWorkingDirectory()); + javaParameters.setWorkingDirectory(getConfiguration().getWorkingDirectory()); javaParameters.getClassPath().add(PathUtil.getJarPathForClass(RemoteTestNGStarter.class)); //the next few lines are awkward for a reason, using compareTo for some reason causes a JVM class verification error! - Module module = config.getConfigurationModule().getModule(); + Module module = getConfiguration().getConfigurationModule().getModule(); LanguageLevel effectiveLanguageLevel = module == null ? LanguageLevelProjectExtension.getInstance(project).getLanguageLevel() : EffectiveLanguageLevelUtil.getEffectiveLanguageLevel(module); @@ -214,7 +214,7 @@ public class TestNGRunnableState extends JavaTestFrameworkRunnableState { final String pathToBundledJar = PathUtil.getJarPathForClass(AfterClass.class); // Configure rest of jars - JavaParametersUtil.configureConfiguration(javaParameters, config); + JavaParametersUtil.configureConfiguration(javaParameters, getConfiguration()); Sdk jdk = module == null ? ProjectRootManager.getInstance(project).getProjectSdk() : ModuleRootManager.getInstance(module).getSdk(); javaParameters.setJdk(jdk); final Object[] patchers = Extensions.getExtensions(ExtensionPoints.JUNIT_PATCHER); @@ -225,19 +225,19 @@ public class TestNGRunnableState extends JavaTestFrameworkRunnableState { // Append coverage parameters if appropriate for (RunConfigurationExtension ext : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) { - ext.updateJavaParameters(config, javaParameters, getRunnerSettings()); + ext.updateJavaParameters(getConfiguration(), javaParameters, getRunnerSettings()); } - LOG.info("Test scope is: " + config.getPersistantData().getScope()); - if (config.getPersistantData().getScope() == TestSearchScope.WHOLE_PROJECT) { + LOG.info("Test scope is: " + getConfiguration().getPersistantData().getScope()); + if (getConfiguration().getPersistantData().getScope() == TestSearchScope.WHOLE_PROJECT) { LOG.info("Configuring for whole project"); - JavaParametersUtil.configureProject(config.getProject(), javaParameters, JavaParameters.JDK_AND_CLASSES_AND_TESTS, - config.ALTERNATIVE_JRE_PATH_ENABLED ? config.ALTERNATIVE_JRE_PATH : null); + JavaParametersUtil.configureProject(getConfiguration().getProject(), javaParameters, JavaParameters.JDK_AND_CLASSES_AND_TESTS, + getConfiguration().ALTERNATIVE_JRE_PATH_ENABLED ? getConfiguration().ALTERNATIVE_JRE_PATH : null); } else { - LOG.info("Configuring for module:" + config.getConfigurationModule().getModuleName()); - JavaParametersUtil.configureModule(config.getConfigurationModule(), javaParameters, JavaParameters.JDK_AND_CLASSES_AND_TESTS, - config.ALTERNATIVE_JRE_PATH_ENABLED ? config.ALTERNATIVE_JRE_PATH : null); + LOG.info("Configuring for module:" + getConfiguration().getConfigurationModule().getModuleName()); + JavaParametersUtil.configureModule(getConfiguration().getConfigurationModule(), javaParameters, JavaParameters.JDK_AND_CLASSES_AND_TESTS, + getConfiguration().ALTERNATIVE_JRE_PATH_ENABLED ? getConfiguration().ALTERNATIVE_JRE_PATH : null); } javaParameters.getClassPath().add(pathToBundledJar); @@ -249,9 +249,9 @@ public class TestNGRunnableState extends JavaTestFrameworkRunnableState { throw new ExecutionException("Unable to bind to port " + port, e); } - final TestData data = config.getPersistantData(); + final TestData data = getConfiguration().getPersistantData(); - javaParameters.getProgramParametersList().add(supportSerializationProtocol(config) ? RemoteArgs.PORT : CommandLineArgs.PORT, String.valueOf(port)); + javaParameters.getProgramParametersList().add(supportSerializationProtocol(getConfiguration()) ? RemoteArgs.PORT : CommandLineArgs.PORT, String.valueOf(port)); if (data.getOutputDirectory() != null && !data.getOutputDirectory().isEmpty()) { javaParameters.getProgramParametersList().add(CommandLineArgs.OUTPUT_DIRECTORY, data.getOutputDirectory()); @@ -267,7 +267,7 @@ public class TestNGRunnableState extends JavaTestFrameworkRunnableState { for (Object o : Extensions.getExtensions(IDEATestNGListener.EP_NAME)) { boolean enabled = true; for (RunConfigurationExtension extension : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) { - if (extension.isListenerDisabled(config, o, getRunnerSettings())) { + if (extension.isListenerDisabled(getConfiguration(), o, getRunnerSettings())) { enabled = false; break; } @@ -346,4 +346,9 @@ public class TestNGRunnableState extends JavaTestFrameworkRunnableState { protected void passTempFile(ParametersList parametersList, String tempFilePath) { parametersList.add("-temp", tempFilePath); } + + @NotNull + public TestNGConfiguration getConfiguration() { + return config; + } }