From fb9e6e06778eb17aa95e839733dc45306eea9615 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 13 Apr 2015 18:35:36 +0200 Subject: [PATCH] sm runner: suggest to fix configuration if no tests were found --- .../JavaTestFrameworkRunnableState.java | 13 +++++-------- .../JavaAwareTestConsoleProperties.java | 17 ++++++++++++++--- .../sm/runner/SMTRunnerConsoleProperties.java | 4 ++++ .../ui/SMTRunnerNotificationsHandler.java | 4 ++++ .../ui/properties/JUnitConsoleProperties.java | 2 +- .../testng/model/TestNGConsoleProperties.java | 2 +- .../testng/ui/TestNGResults.java | 4 ---- 7 files changed, 29 insertions(+), 17 deletions(-) diff --git a/java/execution/impl/src/com/intellij/execution/JavaTestFrameworkRunnableState.java b/java/execution/impl/src/com/intellij/execution/JavaTestFrameworkRunnableState.java index 889d845e73cc..b4f1acaf96d7 100644 --- a/java/execution/impl/src/com/intellij/execution/JavaTestFrameworkRunnableState.java +++ b/java/execution/impl/src/com/intellij/execution/JavaTestFrameworkRunnableState.java @@ -21,7 +21,10 @@ import com.intellij.execution.process.OSProcessHandler; import com.intellij.execution.process.ProcessAdapter; import com.intellij.execution.process.ProcessEvent; import com.intellij.execution.runners.ExecutionEnvironment; -import com.intellij.execution.testframework.*; +import com.intellij.execution.testframework.JavaTestLocationProvider; +import com.intellij.execution.testframework.SearchForTestsTask; +import com.intellij.execution.testframework.TestConsoleProperties; +import com.intellij.execution.testframework.TestFrameworkRunningModel; import com.intellij.execution.testframework.actions.AbstractRerunFailedTestsAction; import com.intellij.execution.testframework.sm.SMTestRunnerConnectionUtil; import com.intellij.execution.testframework.sm.runner.SMTRunnerConsoleProperties; @@ -114,13 +117,7 @@ public abstract class JavaTestFrameworkRunnableState & CommonJavaRunConfigurationParameters> extends SMTRunnerConsoleProperties { public JavaAwareTestConsoleProperties(final String testFrameworkName, RunConfiguration configuration, Executor executor) { super(configuration, testFrameworkName, executor, false); } @@ -42,6 +43,16 @@ public abstract class JavaAwareTestConsoleProperties extends SMTRunnerConsolePro return debuggerSession != null && debuggerSession.isPaused(); } + @Override + public T getConfiguration() { + return (T)super.getConfiguration(); + } + + @Override + public boolean fixEmptySuite() { + return ResetConfigurationModuleAdapter.tryWithAnotherModule(getConfiguration(), isDebug()); + } + @Nullable public DebuggerSession getDebugSession() { final DebuggerManagerEx debuggerManager = DebuggerManagerEx.getInstanceEx(getProject()); diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/SMTRunnerConsoleProperties.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/SMTRunnerConsoleProperties.java index dcc23d09d43e..b3be04b6ddfd 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/SMTRunnerConsoleProperties.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/SMTRunnerConsoleProperties.java @@ -161,4 +161,8 @@ public class SMTRunnerConsoleProperties extends TestConsoleProperties implements return new OpenFileDescriptor(project, file, offset); } + + public boolean fixEmptySuite() { + return false; + } } diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTRunnerNotificationsHandler.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTRunnerNotificationsHandler.java index 7b4a539a4721..5a1a19c1c67a 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTRunnerNotificationsHandler.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTRunnerNotificationsHandler.java @@ -19,6 +19,7 @@ import com.intellij.execution.testframework.TestConsoleProperties; import com.intellij.execution.testframework.TestStatusListener; import com.intellij.execution.testframework.TestsUIUtil; import com.intellij.execution.testframework.sm.SMTestsRunnerBundle; +import com.intellij.execution.testframework.sm.runner.SMTRunnerConsoleProperties; import com.intellij.execution.testframework.sm.runner.SMTRunnerEventsAdapter; import com.intellij.execution.testframework.sm.runner.SMTestProxy; import com.intellij.execution.testframework.sm.runner.states.TestStateInfo; @@ -83,6 +84,9 @@ public class SMTRunnerNotificationsHandler extends SMTRunnerEventsAdapter { type = MessageType.ERROR; break; } else if (testsRoot.isEmptySuite()) { + if (myConsoleProperties instanceof SMTRunnerConsoleProperties && ((SMTRunnerConsoleProperties)myConsoleProperties).fixEmptySuite()) { + return; + } msg = SMTestsRunnerBundle.message("sm.test.runner.ui.tests.tree.presentation.labels.empty.test.suite"); type = MessageType.WARNING; break; diff --git a/plugins/junit/src/com/intellij/execution/junit2/ui/properties/JUnitConsoleProperties.java b/plugins/junit/src/com/intellij/execution/junit2/ui/properties/JUnitConsoleProperties.java index 56f9c1103174..721b7afc4ce9 100644 --- a/plugins/junit/src/com/intellij/execution/junit2/ui/properties/JUnitConsoleProperties.java +++ b/plugins/junit/src/com/intellij/execution/junit2/ui/properties/JUnitConsoleProperties.java @@ -27,7 +27,7 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; -public class JUnitConsoleProperties extends JavaAwareTestConsoleProperties { +public class JUnitConsoleProperties extends JavaAwareTestConsoleProperties { private final JUnitConfiguration myConfiguration; diff --git a/plugins/testng/src/com/theoryinpractice/testng/model/TestNGConsoleProperties.java b/plugins/testng/src/com/theoryinpractice/testng/model/TestNGConsoleProperties.java index 9b048468b091..0c8763f30cce 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/model/TestNGConsoleProperties.java +++ b/plugins/testng/src/com/theoryinpractice/testng/model/TestNGConsoleProperties.java @@ -24,7 +24,7 @@ import com.theoryinpractice.testng.configuration.TestNGConfiguration; import javax.swing.*; -public class TestNGConsoleProperties extends JavaAwareTestConsoleProperties { +public class TestNGConsoleProperties extends JavaAwareTestConsoleProperties { private final TestNGConfiguration myConfiguration; public TestNGConsoleProperties(TestNGConfiguration config, Executor executor) diff --git a/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGResults.java b/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGResults.java index 7e4ec014171b..da30e818fc73 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGResults.java +++ b/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGResults.java @@ -23,14 +23,11 @@ package com.theoryinpractice.testng.ui; import com.intellij.codeInsight.AnnotationUtil; -import com.intellij.execution.ExecutionBundle; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.*; import com.intellij.execution.testframework.actions.ScrollToTestSourceAction; import com.intellij.execution.testframework.ui.TestResultsPanel; import com.intellij.execution.testframework.ui.TestsProgressAnimator; -import com.intellij.icons.AllIcons; -import com.intellij.openapi.actionSystem.DefaultActionGroup; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.progress.util.ColorProgressBar; import com.intellij.openapi.project.Project; @@ -44,7 +41,6 @@ import com.intellij.ui.DoubleClickListener; import com.intellij.ui.ScrollPaneFactory; import com.intellij.ui.table.TableView; import com.intellij.util.OpenSourceUtil; -import com.intellij.util.config.ToggleBooleanProperty; import com.theoryinpractice.testng.configuration.TestNGConfiguration; import com.theoryinpractice.testng.model.*; import com.theoryinpractice.testng.util.TestNGUtil;