sm runner: suggest to fix configuration if no tests were found

This commit is contained in:
Anna Kozlova
2015-04-13 19:23:51 +02:00
parent aa080230b6
commit fb9e6e0677
7 changed files with 29 additions and 17 deletions
@@ -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<T extends ModuleBasedConfig
public void processTerminated(ProcessEvent event) {
Runnable runnable = new Runnable() {
public void run() {
final AbstractTestProxy viewerRoot = viewer.getRoot();
if (viewer.hasTestSuites() ||
!ResetConfigurationModuleAdapter.tryWithAnotherModule(getConfiguration(), testConsoleProperties.isDebug())) {
TestsUIUtil.notifyByBalloon(testConsoleProperties.getProject(), viewer.hasTestSuites(), viewerRoot, testConsoleProperties, null);
}
viewerRoot.flush();
viewer.getRoot().flush();
deleteTempFiles();
clear();
}
@@ -22,16 +22,17 @@ package com.intellij.execution.testframework;
import com.intellij.debugger.DebuggerManagerEx;
import com.intellij.debugger.impl.DebuggerSession;
import com.intellij.execution.CommonJavaRunConfigurationParameters;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.JavaRunConfigurationModule;
import com.intellij.execution.configurations.ModuleBasedConfiguration;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.execution.testframework.sm.runner.SMTRunnerConsoleProperties;
import com.intellij.openapi.project.Project;
import com.intellij.util.config.Storage;
import org.jetbrains.annotations.Nullable;
import java.util.Collection;
public abstract class JavaAwareTestConsoleProperties extends SMTRunnerConsoleProperties {
public abstract class JavaAwareTestConsoleProperties<T extends ModuleBasedConfiguration<JavaRunConfigurationModule> & 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());
@@ -161,4 +161,8 @@ public class SMTRunnerConsoleProperties extends TestConsoleProperties implements
return new OpenFileDescriptor(project, file, offset);
}
public boolean fixEmptySuite() {
return false;
}
}
@@ -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;
@@ -27,7 +27,7 @@ import org.jetbrains.annotations.NotNull;
import javax.swing.*;
public class JUnitConsoleProperties extends JavaAwareTestConsoleProperties {
public class JUnitConsoleProperties extends JavaAwareTestConsoleProperties<JUnitConfiguration> {
private final JUnitConfiguration myConfiguration;
@@ -24,7 +24,7 @@ import com.theoryinpractice.testng.configuration.TestNGConfiguration;
import javax.swing.*;
public class TestNGConsoleProperties extends JavaAwareTestConsoleProperties {
public class TestNGConsoleProperties extends JavaAwareTestConsoleProperties<TestNGConfiguration> {
private final TestNGConfiguration myConfiguration;
public TestNGConsoleProperties(TestNGConfiguration config, Executor executor)
@@ -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;