package krasa.actions;
import krasa.model.TestFile;
import com.intellij.execution.*;
import com.intellij.execution.application.ApplicationConfiguration;
import com.intellij.execution.executors.DefaultDebugExecutor;
import com.intellij.execution.runners.*;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
public class DebugAutotestInIntelliJ extends RunAutotestInIntelliJ {
@Override
protected void execute(AnActionEvent e, TestFile element) {
debugInIDEA(e.getProject(), element);
}
public void debugInIDEA(Project project, TestFile element) {
ApplicationConfiguration applicationConfiguration = getApplicationConfiguration(project, element);
try {
// ExecutionEnvironmentBuilder executionEnvironmentBuilder = ExecutionEnvironmentBuilder.create(project,
// DefaultDebugExecutor.getDebugExecutorInstance(), applicationConfiguration);
// ExecutionEnvironment build = executionEnvironmentBuilder.build();
// build.getRunner().execute(build);
Executor runExecutorInstance = DefaultDebugExecutor.getDebugExecutorInstance();
final ProgramRunner runner = RunnerRegistry.getInstance().getRunner(DefaultDebugExecutor.EXECUTOR_ID,
applicationConfiguration);
ExecutionEnvironmentBuilder executionEnvironmentBuilder = new ExecutionEnvironmentBuilder(project,
runExecutorInstance)
.runner(runner)
.runProfile(applicationConfiguration);
ExecutionEnvironment build = executionEnvironmentBuilder.build();
runner.execute(build);
// RunManagerEx.getInstanceEx(project).addConfiguration((RunnerAndConfigurationSettings)
// build.getConfigurationSettings(), true);
} catch (ExecutionException ex) {
Messages.showMessageDialog(project, "error", "error", Messages.getErrorIcon());
}
}
}