From e3e5cb7590a0e9ac88885babc019772c0be3e1c2 Mon Sep 17 00:00:00 2001 From: Nikolay Mikhaylov Date: Wed, 18 May 2016 10:39:03 +0300 Subject: [PATCH] remote debug arquillian testNG tests --- .../JavaTestFrameworkRunnableState.java | 22 +++++++++++++++++- .../RemoteConnectionCreator.java | 2 ++ .../intellij/execution/junit/TestObject.java | 23 ++++--------------- .../configuration/TestNGConfiguration.java | 8 ++++++- .../configuration/TestNGRunnableState.java | 1 + 5 files changed, 36 insertions(+), 20 deletions(-) diff --git a/java/execution/impl/src/com/intellij/execution/JavaTestFrameworkRunnableState.java b/java/execution/impl/src/com/intellij/execution/JavaTestFrameworkRunnableState.java index dd5d7148e811..7e50f1f99670 100644 --- a/java/execution/impl/src/com/intellij/execution/JavaTestFrameworkRunnableState.java +++ b/java/execution/impl/src/com/intellij/execution/JavaTestFrameworkRunnableState.java @@ -68,12 +68,32 @@ import java.util.List; import java.util.Locale; import java.util.Map; -public abstract class JavaTestFrameworkRunnableState & CommonJavaRunConfigurationParameters & SMRunnerConsolePropertiesProvider> extends JavaCommandLineState { +public abstract class JavaTestFrameworkRunnableState + & CommonJavaRunConfigurationParameters + & SMRunnerConsolePropertiesProvider> extends JavaCommandLineState implements RemoteConnectionCreator { private static final Logger LOG = Logger.getInstance("#" + JavaTestFrameworkRunnableState.class.getName()); protected ServerSocket myServerSocket; protected File myTempFile; protected File myWorkingDirsFile = null; + private RemoteConnectionCreator remoteConnectionCreator; + + public void setRemoteConnectionCreator(RemoteConnectionCreator remoteConnectionCreator) { + this.remoteConnectionCreator = remoteConnectionCreator; + } + + @Nullable + @Override + public RemoteConnection createRemoteConnection(ExecutionEnvironment environment) { + return remoteConnectionCreator == null ? null : remoteConnectionCreator.createRemoteConnection(environment); + } + + @Override + public boolean isPollConnection() { + return remoteConnectionCreator != null && remoteConnectionCreator.isPollConnection(); + } + public JavaTestFrameworkRunnableState(ExecutionEnvironment environment) { super(environment); } diff --git a/java/execution/openapi/src/com/intellij/execution/configurations/RemoteConnectionCreator.java b/java/execution/openapi/src/com/intellij/execution/configurations/RemoteConnectionCreator.java index d4ca5b4ca533..71b3a4bd968c 100644 --- a/java/execution/openapi/src/com/intellij/execution/configurations/RemoteConnectionCreator.java +++ b/java/execution/openapi/src/com/intellij/execution/configurations/RemoteConnectionCreator.java @@ -16,8 +16,10 @@ package com.intellij.execution.configurations; import com.intellij.execution.runners.ExecutionEnvironment; +import org.jetbrains.annotations.Nullable; public interface RemoteConnectionCreator { + @Nullable RemoteConnection createRemoteConnection(ExecutionEnvironment environment); boolean isPollConnection(); diff --git a/plugins/junit/src/com/intellij/execution/junit/TestObject.java b/plugins/junit/src/com/intellij/execution/junit/TestObject.java index fb3570302833..d13a10e17203 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestObject.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestObject.java @@ -17,7 +17,10 @@ package com.intellij.execution.junit; import com.intellij.execution.*; -import com.intellij.execution.configurations.*; +import com.intellij.execution.configurations.JavaParameters; +import com.intellij.execution.configurations.ParametersList; +import com.intellij.execution.configurations.RunnerSettings; +import com.intellij.execution.configurations.RuntimeConfigurationException; import com.intellij.execution.junit2.TestProxy; import com.intellij.execution.junit2.segments.DeferredActionsQueue; import com.intellij.execution.junit2.segments.DeferredActionsQueueImpl; @@ -68,7 +71,7 @@ import java.io.File; import java.io.IOException; import java.util.*; -public abstract class TestObject extends JavaTestFrameworkRunnableState implements RemoteConnectionCreator { +public abstract class TestObject extends JavaTestFrameworkRunnableState { protected static final Logger LOG = Logger.getInstance(TestObject.class); private static final String MESSAGE = ExecutionBundle.message("configuration.not.speficied.message"); @@ -76,22 +79,6 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState getConfigurationEditor() { SettingsEditorGroup group = new SettingsEditorGroup(); - group.addEditor(ExecutionBundle.message("run.configuration.configuration.tab.title"), new TestNGConfigurationEditor(getProject())); + group.addEditor(ExecutionBundle.message("run.configuration.configuration.tab.title"), + new TestNGConfigurationEditor(getProject())); JavaRunConfigurationExtensionManager.getInstance().appendEditors(this, group); group.addEditor(ExecutionBundle.message("logs.tab.title"), new LogConfigurationPanel()); return group; diff --git a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGRunnableState.java b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGRunnableState.java index 03192920ef89..41c65b55dc91 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGRunnableState.java +++ b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGRunnableState.java @@ -74,6 +74,7 @@ public class TestNGRunnableState extends JavaTestFrameworkRunnableState