mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
implement coverage for gradle-based tests IDEA-148672
This commit is contained in:
@@ -29,5 +29,6 @@
|
||||
<orderEntry type="module" module-name="openapi" />
|
||||
<orderEntry type="module" module-name="configuration-store-impl" />
|
||||
<orderEntry type="module" module-name="testExtensions" scope="TEST" />
|
||||
<orderEntry type="module" module-name="execution-impl" />
|
||||
</component>
|
||||
</module>
|
||||
+26
-10
@@ -47,6 +47,7 @@ import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.FoldRegion;
|
||||
import com.intellij.openapi.editor.FoldingModel;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.externalSystem.ExternalSystemManager;
|
||||
import com.intellij.openapi.externalSystem.execution.ExternalSystemExecutionConsoleManager;
|
||||
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
|
||||
@@ -125,6 +126,7 @@ public class ExternalSystemRunConfiguration extends LocatableConfigurationBase i
|
||||
if (e != null) {
|
||||
mySettings = XmlSerializer.deserialize(e, ExternalSystemTaskExecutionSettings.class);
|
||||
}
|
||||
JavaRunConfigurationExtensionManager.getInstance().readExternal(this, element);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -144,6 +146,7 @@ public class ExternalSystemRunConfiguration extends LocatableConfigurationBase i
|
||||
}
|
||||
}
|
||||
}));
|
||||
JavaRunConfigurationExtensionManager.getInstance().writeExternal(this, element);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -156,6 +159,7 @@ public class ExternalSystemRunConfiguration extends LocatableConfigurationBase i
|
||||
public SettingsEditor<ExternalSystemRunConfiguration> getConfigurationEditor() {
|
||||
SettingsEditorGroup<ExternalSystemRunConfiguration> group = new SettingsEditorGroup<>();
|
||||
group.addEditor(ExecutionBundle.message("run.configuration.configuration.tab.title"), new ExternalSystemRunConfigurationEditor(getProject(), mySettings.getExternalSystemId()));
|
||||
JavaRunConfigurationExtensionManager.getInstance().appendEditors(this, group);
|
||||
group.addEditor(ExecutionBundle.message("logs.tab.title"), new LogConfigurationPanel<>());
|
||||
return group;
|
||||
}
|
||||
@@ -234,20 +238,29 @@ public class ExternalSystemRunConfiguration extends LocatableConfigurationBase i
|
||||
if (mySettings.getTaskNames().isEmpty()) {
|
||||
throw new ExecutionException(ExternalSystemBundle.message("run.error.undefined.task"));
|
||||
}
|
||||
String jvmAgentSetup = null;
|
||||
|
||||
final JavaParameters extensionsJP = new JavaParameters();
|
||||
final RunConfigurationExtension[] extensions = Extensions.getExtensions(RunConfigurationExtension.EP_NAME);
|
||||
for (RunConfigurationExtension ext : extensions) {
|
||||
ext.updateJavaParameters(myConfiguration, extensionsJP, myEnv.getRunnerSettings());
|
||||
}
|
||||
|
||||
String jvmAgentSetup;
|
||||
if (myDebugPort > 0) {
|
||||
jvmAgentSetup = "-agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=" + myDebugPort;
|
||||
} else {
|
||||
ParametersList parametersList = myEnv.getUserData(ExternalSystemTaskExecutionSettings.JVM_AGENT_SETUP_KEY);
|
||||
if (parametersList != null) {
|
||||
for (String parameter : parametersList.getList()) {
|
||||
if (parameter.startsWith("-agentlib:")) continue;
|
||||
if (parameter.startsWith("-agentpath:")) continue;
|
||||
if (parameter.startsWith("-javaagent:")) continue;
|
||||
throw new ExecutionException(ExternalSystemBundle.message("run.invalid.jvm.agent.configuration", parameter));
|
||||
}
|
||||
jvmAgentSetup = parametersList.getParametersString();
|
||||
ParametersList parametersList = extensionsJP.getVMParametersList();
|
||||
final ParametersList data = myEnv.getUserData(ExternalSystemTaskExecutionSettings.JVM_AGENT_SETUP_KEY);
|
||||
if (data != null) {
|
||||
parametersList.addAll(data.getList());
|
||||
}
|
||||
for (String parameter : parametersList.getList()) {
|
||||
if (parameter.startsWith("-agentlib:")) continue;
|
||||
if (parameter.startsWith("-agentpath:")) continue;
|
||||
if (parameter.startsWith("-javaagent:")) continue;
|
||||
throw new ExecutionException(ExternalSystemBundle.message("run.invalid.jvm.agent.configuration", parameter));
|
||||
}
|
||||
jvmAgentSetup = parametersList.getParametersString();
|
||||
}
|
||||
|
||||
ApplicationManager.getApplication().assertIsDispatchThread();
|
||||
@@ -275,6 +288,9 @@ public class ExternalSystemRunConfiguration extends LocatableConfigurationBase i
|
||||
: AbstractExternalSystemTaskConfigurationType.generateName(
|
||||
myProject, mySettings.getExternalSystemId(), mySettings.getExternalProjectPath(),
|
||||
mySettings.getTaskNames(), mySettings.getExecutionName(), ": ", "");
|
||||
|
||||
JavaRunConfigurationExtensionManager.getInstance().attachExtensionsToProcess(myConfiguration, processHandler, myEnv.getRunnerSettings());
|
||||
|
||||
ApplicationManager.getApplication().executeOnPooledThread(() -> {
|
||||
final String startDateTime = DateFormatUtil.formatTimeWithSeconds(System.currentTimeMillis());
|
||||
final String greeting;
|
||||
|
||||
@@ -82,5 +82,6 @@
|
||||
<orderEntry type="library" name="Kryo" level="project" />
|
||||
<orderEntry type="library" name="Ant" level="project" />
|
||||
<orderEntry type="library" name="gson" level="project" />
|
||||
<orderEntry type="module" module-name="coverage" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -0,0 +1,5 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<javaCoverageEngineExtension implementation="org.jetbrains.plugins.gradle.execution.test.runner.GradleCoverageExtension"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
@@ -40,6 +40,7 @@
|
||||
<depends>com.intellij.modules.lang</depends>
|
||||
<depends>org.intellij.groovy</depends>
|
||||
<depends optional="true" config-file="gradle-maven-integration.xml">org.jetbrains.idea.maven</depends>
|
||||
<depends optional="true" config-file="gradle-coverage-integration.xml">com.intellij.modules.coverage</depends>
|
||||
|
||||
<resource-bundle>i18n.GradleBundle</resource-bundle>
|
||||
|
||||
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright 2000-2017 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jetbrains.plugins.gradle.execution.test.runner
|
||||
|
||||
import com.intellij.coverage.JavaCoverageEngineExtension
|
||||
import com.intellij.execution.configurations.RunConfigurationBase
|
||||
import com.intellij.openapi.externalSystem.service.execution.ExternalSystemRunConfiguration
|
||||
import org.jetbrains.plugins.gradle.util.GradleConstants
|
||||
|
||||
/**
|
||||
* Created by Nikita.Skvortsov
|
||||
* date: 23.08.2017.
|
||||
*/
|
||||
|
||||
class GradleCoverageExtension: JavaCoverageEngineExtension() {
|
||||
override fun isApplicableTo(conf: RunConfigurationBase?): Boolean =
|
||||
conf is ExternalSystemRunConfiguration && GradleConstants.SYSTEM_ID == conf.settings.externalSystemId
|
||||
}
|
||||
Reference in New Issue
Block a user