added PY-3119 Support auto-rerun of tests in PyCharm

This commit is contained in:
Ekaterina Tuzova
2011-03-23 19:52:26 +03:00
parent 2cbb3ee0a6
commit 971d0aa1c3
2 changed files with 22 additions and 0 deletions
@@ -424,6 +424,8 @@
<colorSettingsPage implementation="com.jetbrains.python.buildout.config.BuildoutCfgColorsPage"/>
<projectService serviceInterface="com.jetbrains.python.testing.TestRunnerService"
serviceImplementation="com.jetbrains.python.testing.TestRunnerService"/>
<projectService serviceInterface="com.intellij.execution.testframework.autotest.AutoTestManager"
serviceImplementation="com.intellij.execution.testframework.autotest.AutoTestManager"/>
<problemFileHighlightFilter implementation="com.jetbrains.python.buildout.config.BuildoutCfgProblemFileHighlightFilter"/>
@@ -1,17 +1,23 @@
package com.jetbrains.python.testing;
import com.google.common.collect.Lists;
import com.intellij.execution.DefaultExecutionResult;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.ExecutionResult;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.execution.configurations.ParamsGroup;
import com.intellij.execution.filters.Filter;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.execution.runners.ExecutionEnvironment;
import com.intellij.execution.testframework.autotest.ToggleAutoTestAction;
import com.intellij.execution.testframework.sm.SMTestRunnerConnectionUtil;
import com.intellij.execution.ui.ConsoleView;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import com.jetbrains.python.run.AbstractPythonRunConfiguration;
import com.jetbrains.python.run.CommandLinePatcher;
import com.jetbrains.python.run.PythonCommandLineState;
import com.jetbrains.python.run.PythonTracebackFilter;
import org.jetbrains.annotations.NotNull;
@@ -54,6 +60,20 @@ public abstract class PythonTestCommandLineStateBase extends PythonCommandLineSt
return cmd;
}
@Override
public ExecutionResult execute(Executor executor, CommandLinePatcher... patchers) throws ExecutionException {
final ProcessHandler processHandler = startProcess(patchers);
final ConsoleView console = createAndAttachConsole(getConfig().getProject(), processHandler, executor);
List<AnAction> actions = Lists
.newArrayList(createActions(console, processHandler));
DefaultExecutionResult executionResult =
new DefaultExecutionResult(console, processHandler, actions.toArray(new AnAction[actions.size()]));
executionResult.setRestartActions(new ToggleAutoTestAction());
return executionResult;
}
protected abstract void addTestRunnerParameters(GeneralCommandLine cmd);
protected abstract List<String> getTestSpecs();
}