mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
refactoring: TestConsoleProperties now holds a reference to Executor
This commit is contained in:
+3
-7
@@ -22,6 +22,7 @@ package com.intellij.execution.testframework;
|
||||
|
||||
import com.intellij.debugger.DebuggerManagerEx;
|
||||
import com.intellij.debugger.impl.DebuggerSession;
|
||||
import com.intellij.execution.Executor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.util.config.Storage;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -29,13 +30,8 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.Collection;
|
||||
|
||||
public abstract class JavaAwareTestConsoleProperties extends TestConsoleProperties {
|
||||
public JavaAwareTestConsoleProperties(final Storage storage, Project project) {
|
||||
super(storage, project);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDebug() {
|
||||
return getDebugSession() != null;
|
||||
public JavaAwareTestConsoleProperties(final Storage storage, Project project, Executor executor) {
|
||||
super(storage, project, executor);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+5
-2
@@ -16,6 +16,7 @@
|
||||
package com.intellij.execution.testframework.sm;
|
||||
|
||||
import com.intellij.execution.ExecutionException;
|
||||
import com.intellij.execution.Executor;
|
||||
import com.intellij.execution.configurations.CommandLineState;
|
||||
import com.intellij.execution.configurations.ConfigurationPerRunnerSettings;
|
||||
import com.intellij.execution.configurations.RunnerSettings;
|
||||
@@ -131,16 +132,18 @@ public class SMTestRunnerConnectionUtil {
|
||||
* @param processHandler Process handler
|
||||
* @param commandLineState Command line state
|
||||
* @param config User run configuration settings
|
||||
* @param executor Executor
|
||||
* @return Console view
|
||||
* @throws ExecutionException If IDEA cannot execute process this Exception will
|
||||
* be caught and shown in error message box
|
||||
*/
|
||||
public static ConsoleView attachRunner(@NotNull final String testFrameworkName, @NotNull final ProcessHandler processHandler,
|
||||
@NotNull final CommandLineState commandLineState,
|
||||
@NotNull final RuntimeConfiguration config
|
||||
@NotNull final RuntimeConfiguration config,
|
||||
@NotNull final Executor executor
|
||||
) throws ExecutionException {
|
||||
// final String testFrameworkName
|
||||
final TestConsoleProperties consoleProperties = new SMTRunnerConsoleProperties(config, testFrameworkName);
|
||||
final TestConsoleProperties consoleProperties = new SMTRunnerConsoleProperties(config, testFrameworkName, executor);
|
||||
|
||||
return attachRunner(testFrameworkName, processHandler, consoleProperties,
|
||||
commandLineState.getRunnerSettings(),
|
||||
|
||||
+6
-31
@@ -15,13 +15,11 @@
|
||||
*/
|
||||
package com.intellij.execution.testframework.sm.runner;
|
||||
|
||||
import com.intellij.execution.Executor;
|
||||
import com.intellij.execution.configurations.RuntimeConfiguration;
|
||||
import com.intellij.execution.testframework.TestConsoleProperties;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.util.config.Storage;
|
||||
import com.intellij.xdebugger.XDebugSession;
|
||||
import com.intellij.xdebugger.XDebuggerManager;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author: Roman Chernyatchik
|
||||
@@ -32,40 +30,17 @@ public class SMTRunnerConsoleProperties extends TestConsoleProperties {
|
||||
/**
|
||||
* @param config
|
||||
* @param testFrameworkName Prefix for storage which keeps runner settings. E.g. "RubyTestUnit"
|
||||
* @param executor
|
||||
*/
|
||||
public SMTRunnerConsoleProperties(final RuntimeConfiguration config,
|
||||
final String testFrameworkName)
|
||||
final String testFrameworkName,
|
||||
Executor executor)
|
||||
{
|
||||
super(new Storage.PropertiesComponentStorage(testFrameworkName + "Support.", PropertiesComponent.getInstance()), config.getProject());
|
||||
super(new Storage.PropertiesComponentStorage(testFrameworkName + "Support.", PropertiesComponent.getInstance()), config.getProject(),
|
||||
executor);
|
||||
myConfiguration = config;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDebug() {
|
||||
return getDebugSession() != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPaused() {
|
||||
final XDebugSession debuggerSession = getDebugSession();
|
||||
return debuggerSession != null && debuggerSession.isPaused();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public XDebugSession getDebugSession() {
|
||||
final XDebuggerManager debuggerManager = XDebuggerManager.getInstance(getProject());
|
||||
if (debuggerManager == null) {
|
||||
return null;
|
||||
}
|
||||
final XDebugSession[] sessions = debuggerManager.getDebugSessions();
|
||||
for (final XDebugSession debuggerSession : sessions) {
|
||||
if (getConsole() == debuggerSession.getRunContentDescriptor().getExecutionConsole()) {
|
||||
return debuggerSession;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public RuntimeConfiguration getConfiguration() {
|
||||
return myConfiguration;
|
||||
}
|
||||
|
||||
+2
-1
@@ -16,6 +16,7 @@
|
||||
package com.intellij.execution.testframework.sm.runner;
|
||||
|
||||
import com.intellij.execution.configurations.RuntimeConfiguration;
|
||||
import com.intellij.execution.executors.DefaultDebugExecutor;
|
||||
import com.intellij.execution.testframework.TestConsoleProperties;
|
||||
import com.intellij.testFramework.LightPlatformTestCase;
|
||||
import com.intellij.testFramework.PlatformTestCase;
|
||||
@@ -86,7 +87,7 @@ public abstract class BaseSMTRunnerTestCase extends LightPlatformTestCase {
|
||||
protected TestConsoleProperties createConsoleProperties() {
|
||||
final RuntimeConfiguration runConfiguration = createRunConfiguration();
|
||||
|
||||
final TestConsoleProperties consoleProperties = new SMTRunnerConsoleProperties(runConfiguration, "SMRunnerTests");
|
||||
final TestConsoleProperties consoleProperties = new SMTRunnerConsoleProperties(runConfiguration, "SMRunnerTests", DefaultDebugExecutor.getDebugExecutorInstance());
|
||||
TestConsoleProperties.HIDE_PASSED_TESTS.set(consoleProperties, false);
|
||||
|
||||
return consoleProperties;
|
||||
|
||||
+2
-1
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.execution.testframework.sm.runner.ui;
|
||||
|
||||
import com.intellij.execution.executors.DefaultDebugExecutor;
|
||||
import com.intellij.execution.testframework.PoolOfTestIcons;
|
||||
import com.intellij.execution.testframework.sm.UITestUtil;
|
||||
import com.intellij.execution.testframework.sm.runner.BaseSMTRunnerTestCase;
|
||||
@@ -638,7 +639,7 @@ public class TestsPresentationUtilTest extends BaseSMTRunnerTestCase {
|
||||
|
||||
public MyRenderer(final boolean isPaused,
|
||||
final UITestUtil.FragmentsContainer fragmentsContainer) {
|
||||
super(new SMTRunnerConsoleProperties(createRunConfiguration(), "SMRunnerTests") {
|
||||
super(new SMTRunnerConsoleProperties(createRunConfiguration(), "SMRunnerTests", DefaultDebugExecutor.getDebugExecutorInstance()) {
|
||||
@Override
|
||||
public boolean isPaused() {
|
||||
return isPaused;
|
||||
|
||||
+14
-3
@@ -20,7 +20,9 @@
|
||||
*/
|
||||
package com.intellij.execution.testframework;
|
||||
|
||||
import com.intellij.execution.Executor;
|
||||
import com.intellij.execution.configurations.RuntimeConfiguration;
|
||||
import com.intellij.execution.executors.DefaultDebugExecutor;
|
||||
import com.intellij.execution.ui.ConsoleView;
|
||||
import com.intellij.execution.ui.ExecutionConsole;
|
||||
import com.intellij.execution.util.StoringPropertyContainer;
|
||||
@@ -31,6 +33,8 @@ import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.util.config.AbstractProperty;
|
||||
import com.intellij.util.config.BooleanProperty;
|
||||
import com.intellij.util.config.Storage;
|
||||
import com.intellij.xdebugger.XDebugSession;
|
||||
import com.intellij.xdebugger.XDebuggerManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -46,14 +50,16 @@ public abstract class TestConsoleProperties extends StoringPropertyContainer imp
|
||||
public static final BooleanProperty SHOW_STATISTICS = new BooleanProperty("showStatistics", false);
|
||||
|
||||
private final Project myProject;
|
||||
private final Executor myExecutor;
|
||||
private ConsoleView myConsole;
|
||||
|
||||
protected final HashMap<AbstractProperty, ArrayList<TestFrameworkPropertyListener>> myListeners =
|
||||
new HashMap<AbstractProperty, ArrayList<TestFrameworkPropertyListener>>();
|
||||
|
||||
public TestConsoleProperties(final Storage storage, Project project) {
|
||||
public TestConsoleProperties(final Storage storage, Project project, Executor executor) {
|
||||
super(storage);
|
||||
myProject = project;
|
||||
myExecutor = executor;
|
||||
}
|
||||
|
||||
public Project getProject() {
|
||||
@@ -92,9 +98,14 @@ public abstract class TestConsoleProperties extends StoringPropertyContainer imp
|
||||
}
|
||||
}
|
||||
|
||||
public abstract boolean isDebug();
|
||||
public boolean isDebug() {
|
||||
return myExecutor.getId() == DefaultDebugExecutor.EXECUTOR_ID;
|
||||
}
|
||||
|
||||
public abstract boolean isPaused();
|
||||
public boolean isPaused() {
|
||||
final XDebugSession debuggerSession = XDebuggerManager.getInstance(myProject).getDebugSession(getConsole());
|
||||
return debuggerSession != null && debuggerSession.isPaused();
|
||||
}
|
||||
|
||||
protected <T> void onPropertyChanged(final AbstractProperty<T> property, final T value) {
|
||||
final ArrayList<TestFrameworkPropertyListener> listeners = myListeners.get(property);
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
<orderEntry type="module" module-name="platform-api" />
|
||||
<orderEntry type="module" module-name="lang-impl" />
|
||||
<orderEntry type="module" module-name="platform-impl" />
|
||||
<orderEntry type="module" module-name="xdebugger-api" />
|
||||
</component>
|
||||
</module>
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.intellij.xdebugger;
|
||||
import com.intellij.execution.ExecutionException;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.execution.runners.ProgramRunner;
|
||||
import com.intellij.execution.ui.ExecutionConsole;
|
||||
import com.intellij.execution.ui.RunContentDescriptor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.xdebugger.breakpoints.XBreakpointManager;
|
||||
@@ -43,6 +44,9 @@ public abstract class XDebuggerManager {
|
||||
@NotNull
|
||||
public abstract XDebugSession[] getDebugSessions();
|
||||
|
||||
@Nullable
|
||||
public abstract XDebugSession getDebugSession(@NotNull ExecutionConsole executionConsole);
|
||||
|
||||
@NotNull
|
||||
public abstract <T extends XDebugProcess> Collection<? extends T> getDebugProcesses(Class<T> processClass);
|
||||
|
||||
|
||||
@@ -21,26 +21,27 @@ import com.intellij.execution.executors.DefaultDebugExecutor;
|
||||
import com.intellij.execution.process.ProcessHandler;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.execution.runners.ProgramRunner;
|
||||
import com.intellij.execution.ui.ExecutionConsole;
|
||||
import com.intellij.execution.ui.RunContentDescriptor;
|
||||
import com.intellij.execution.ui.RunContentListener;
|
||||
import com.intellij.execution.ui.RunContentManager;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.components.PersistentStateComponent;
|
||||
import com.intellij.openapi.components.ProjectComponent;
|
||||
import com.intellij.openapi.components.State;
|
||||
import com.intellij.openapi.components.Storage;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManagerAdapter;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManagerListener;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.startup.StartupManager;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManagerListener;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManagerAdapter;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.impl.http.HttpVirtualFile;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.util.containers.HashMap;
|
||||
import com.intellij.util.xmlb.annotations.Property;
|
||||
import com.intellij.util.messages.MessageBus;
|
||||
import com.intellij.util.xmlb.annotations.Property;
|
||||
import com.intellij.xdebugger.*;
|
||||
import com.intellij.xdebugger.impl.breakpoints.XBreakpointManagerImpl;
|
||||
import com.intellij.xdebugger.impl.ui.ExecutionPointHighlighter;
|
||||
@@ -208,6 +209,17 @@ public class XDebuggerManagerImpl extends XDebuggerManager
|
||||
return mySessions.toArray(new XDebugSession[mySessions.size()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public XDebugSession getDebugSession(@NotNull ExecutionConsole executionConsole) {
|
||||
for (final XDebugSession debuggerSession : getDebugSessions()) {
|
||||
if (executionConsole == debuggerSession.getRunContentDescriptor().getExecutionConsole()) {
|
||||
return debuggerSession;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public <T extends XDebugProcess> Collection<? extends T> getDebugProcesses(Class<T> processClass) {
|
||||
|
||||
@@ -260,7 +260,7 @@ public abstract class TestObject implements JavaCommandLine {
|
||||
ext.handleStartProcess(myConfiguration, handler);
|
||||
}
|
||||
final TestProxy unboundOutputRoot = new TestProxy(new RootTestInfo());
|
||||
final JUnitConsoleProperties consoleProperties = new JUnitConsoleProperties(myConfiguration);
|
||||
final JUnitConsoleProperties consoleProperties = new JUnitConsoleProperties(myConfiguration, executor);
|
||||
final JUnitTreeConsoleView consoleView = new JUnitTreeConsoleView(consoleProperties, getRunnerSettings(), getConfigurationSettings(), unboundOutputRoot);
|
||||
consoleView.initUI();
|
||||
consoleView.attachToProcess(handler);
|
||||
|
||||
+5
-4
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.intellij.execution.junit2.ui.properties;
|
||||
|
||||
import com.intellij.execution.Executor;
|
||||
import com.intellij.execution.junit.JUnitConfiguration;
|
||||
import com.intellij.execution.testframework.JavaAwareTestConsoleProperties;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
@@ -29,12 +30,12 @@ public class JUnitConsoleProperties extends JavaAwareTestConsoleProperties {
|
||||
|
||||
private final JUnitConfiguration myConfiguration;
|
||||
|
||||
public JUnitConsoleProperties(@NotNull JUnitConfiguration configuration) {
|
||||
this(configuration, new Storage.PropertiesComponentStorage(GROUP_NAME, PropertiesComponent.getInstance()));
|
||||
public JUnitConsoleProperties(@NotNull JUnitConfiguration configuration, Executor executor) {
|
||||
this(configuration, new Storage.PropertiesComponentStorage(GROUP_NAME, PropertiesComponent.getInstance()), executor);
|
||||
}
|
||||
|
||||
public JUnitConsoleProperties(@NotNull JUnitConfiguration configuration, final Storage storage) {
|
||||
super(storage, configuration.getProject());
|
||||
public JUnitConsoleProperties(@NotNull JUnitConfiguration configuration, final Storage storage, Executor executor) {
|
||||
super(storage, configuration.getProject(), executor);
|
||||
myConfiguration = configuration;
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -127,7 +127,8 @@ public class TestNGRunnableState extends JavaCommandLineState {
|
||||
throw e;
|
||||
}
|
||||
final TreeRootNode unboundOutputRoot = new TreeRootNode();
|
||||
final TestNGConsoleView console = new TestNGConsoleView(config, runnerSettings, myConfigurationPerRunnerSettings, unboundOutputRoot);
|
||||
final TestNGConsoleView console = new TestNGConsoleView(config, runnerSettings, myConfigurationPerRunnerSettings, unboundOutputRoot,
|
||||
executor);
|
||||
console.initUI();
|
||||
unboundOutputRoot.setPrinter(console.getPrinter());
|
||||
for (RunConfigurationExtension ext : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.theoryinpractice.testng.model;
|
||||
|
||||
import com.intellij.execution.Executor;
|
||||
import com.intellij.execution.testframework.JavaAwareTestConsoleProperties;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
@@ -26,9 +27,9 @@ public class TestNGConsoleProperties extends JavaAwareTestConsoleProperties {
|
||||
@NonNls private static final String PREFIX = "TestNGSupport.";
|
||||
private final TestNGConfiguration myConfiguration;
|
||||
|
||||
public TestNGConsoleProperties(TestNGConfiguration config)
|
||||
public TestNGConsoleProperties(TestNGConfiguration config, Executor executor)
|
||||
{
|
||||
super(new Storage.PropertiesComponentStorage(PREFIX, PropertiesComponent.getInstance()), config.getProject());
|
||||
super(new Storage.PropertiesComponentStorage(PREFIX, PropertiesComponent.getInstance()), config.getProject(), executor);
|
||||
myConfiguration = config;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
*/
|
||||
package com.theoryinpractice.testng.ui;
|
||||
|
||||
import com.intellij.execution.Executor;
|
||||
import com.intellij.execution.configurations.ConfigurationPerRunnerSettings;
|
||||
import com.intellij.execution.configurations.RunnerSettings;
|
||||
import com.intellij.execution.filters.HyperlinkInfo;
|
||||
import com.intellij.execution.process.ProcessHandler;
|
||||
import com.intellij.execution.testframework.Printable;
|
||||
import com.intellij.execution.testframework.Printer;
|
||||
@@ -32,9 +32,7 @@ import com.intellij.execution.testframework.TestTreeView;
|
||||
import com.intellij.execution.testframework.stacktrace.DiffHyperlink;
|
||||
import com.intellij.execution.testframework.ui.BaseTestsOutputConsoleView;
|
||||
import com.intellij.execution.testframework.ui.TestResultsPanel;
|
||||
import com.intellij.execution.ui.ConsoleView;
|
||||
import com.intellij.execution.ui.ConsoleViewContentType;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.theoryinpractice.testng.configuration.TestNGConfiguration;
|
||||
import com.theoryinpractice.testng.model.TestNGConsoleProperties;
|
||||
import com.theoryinpractice.testng.model.TestProxy;
|
||||
@@ -42,7 +40,6 @@ import com.theoryinpractice.testng.model.TreeRootNode;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.testng.remote.strprotocol.TestResultMessage;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.TreeSelectionEvent;
|
||||
import javax.swing.event.TreeSelectionListener;
|
||||
import java.util.ArrayList;
|
||||
@@ -68,8 +65,9 @@ public class TestNGConsoleView extends BaseTestsOutputConsoleView {
|
||||
public TestNGConsoleView(TestNGConfiguration config,
|
||||
final RunnerSettings runnerSettings,
|
||||
final ConfigurationPerRunnerSettings configurationPerRunnerSettings,
|
||||
final TreeRootNode unboundOutputRoot) {
|
||||
super(new TestNGConsoleProperties(config), unboundOutputRoot);
|
||||
final TreeRootNode unboundOutputRoot,
|
||||
Executor executor) {
|
||||
super(new TestNGConsoleProperties(config, executor), unboundOutputRoot);
|
||||
myConfiguration = config;
|
||||
myRunnerSettings = runnerSettings;
|
||||
myConfigurationPerRunnerSettings = configurationPerRunnerSettings;
|
||||
|
||||
Reference in New Issue
Block a user