mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
test history: don't save runner/executor/etc information so rerun failed could be restored (IDEA-142270)
This commit is contained in:
+10
@@ -44,4 +44,14 @@ public class ConfigurationTypeUtil {
|
||||
public static boolean equals(@NotNull ConfigurationType type1, @NotNull ConfigurationType type2) {
|
||||
return type1.getId().equals(type2.getId());
|
||||
}
|
||||
|
||||
public static ConfigurationType findConfigurationType(String configurationId) {
|
||||
ConfigurationType[] types = Extensions.getExtensions(ConfigurationType.CONFIGURATION_TYPE_EP);
|
||||
for (ConfigurationType type : types) {
|
||||
if (type.getId().equals(configurationId)) {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-9
@@ -18,9 +18,7 @@ package com.intellij.execution.testframework.sm;
|
||||
import com.intellij.execution.configurations.ConfigurationType;
|
||||
import com.intellij.execution.configurations.ConfigurationTypeUtil;
|
||||
import com.intellij.execution.testframework.sm.runner.history.actions.AbstractImportTestsAction;
|
||||
import com.intellij.execution.testframework.sm.runner.ui.SMTestRunnerResultsForm;
|
||||
import com.intellij.openapi.components.*;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.util.xmlb.annotations.Attribute;
|
||||
import com.intellij.util.xmlb.annotations.MapAnnotation;
|
||||
@@ -28,7 +26,6 @@ import com.intellij.util.xmlb.annotations.Property;
|
||||
import com.intellij.util.xmlb.annotations.Tag;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -86,12 +83,8 @@ public class TestHistoryConfiguration implements PersistentStateComponent<TestHi
|
||||
public Icon getIcon(String file) {
|
||||
final ConfigurationBean bean = myState.getHistoryElements().get(file);
|
||||
if (bean != null) {
|
||||
ConfigurationType[] types = Extensions.getExtensions(ConfigurationType.CONFIGURATION_TYPE_EP);
|
||||
for (ConfigurationType type : types) {
|
||||
if (type.getId().equals(bean.configurationId)) {
|
||||
return type.getIcon();
|
||||
}
|
||||
}
|
||||
ConfigurationType type = ConfigurationTypeUtil.findConfigurationType(bean.configurationId);
|
||||
if (type != null) return type.getIcon();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
+19
-30
@@ -19,20 +19,14 @@ import com.intellij.execution.ExecutionException;
|
||||
import com.intellij.execution.Executor;
|
||||
import com.intellij.execution.ExecutorRegistry;
|
||||
import com.intellij.execution.RunnerRegistry;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.configurations.RunProfile;
|
||||
import com.intellij.execution.configurations.RunProfileState;
|
||||
import com.intellij.execution.configurations.*;
|
||||
import com.intellij.execution.executors.DefaultRunExecutor;
|
||||
import com.intellij.execution.impl.RunManagerImpl;
|
||||
import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.execution.runners.ExecutionEnvironmentBuilder;
|
||||
import com.intellij.execution.runners.ProgramRunner;
|
||||
import com.intellij.execution.testframework.export.TestResultsXmlFormatter;
|
||||
import com.intellij.execution.testframework.sm.runner.history.ImportedTestRunnableState;
|
||||
import com.intellij.execution.testframework.sm.runner.SMRunnerConsolePropertiesProvider;
|
||||
import com.intellij.execution.testframework.sm.runner.SMTRunnerConsoleProperties;
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
@@ -40,9 +34,7 @@ import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.JDOMUtil;
|
||||
import com.intellij.openapi.util.UserDataHolder;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -153,7 +145,7 @@ public abstract class AbstractImportTestsAction extends AnAction {
|
||||
public static class ImportRunProfile implements RunProfile {
|
||||
private final VirtualFile myFile;
|
||||
private final Project myProject;
|
||||
private RunnerAndConfigurationSettingsImpl mySettings;
|
||||
private RunConfiguration myConfiguration;
|
||||
private boolean myImported;
|
||||
private SMTRunnerConsoleProperties myProperties;
|
||||
|
||||
@@ -164,21 +156,22 @@ public abstract class AbstractImportTestsAction extends AnAction {
|
||||
final Document document = JDOMUtil.loadDocument(VfsUtilCore.virtualToIoFile(myFile));
|
||||
final Element config = document.getRootElement().getChild("config");
|
||||
if (config != null) {
|
||||
mySettings = new RunnerAndConfigurationSettingsImpl(RunManagerImpl.getInstanceImpl(project));
|
||||
try {
|
||||
mySettings.readExternal(config);
|
||||
final Executor executor = ExecutorRegistry.getInstance().getExecutorById(DefaultRunExecutor.EXECUTOR_ID);
|
||||
if (executor != null) {
|
||||
final RunConfiguration configuration = mySettings.getConfiguration();
|
||||
if (configuration instanceof SMRunnerConsolePropertiesProvider) {
|
||||
myProperties = ((SMRunnerConsolePropertiesProvider)configuration).createTestConsoleProperties(executor);
|
||||
String configTypeId = config.getAttributeValue("configId");
|
||||
if (configTypeId != null) {
|
||||
final ConfigurationType configurationType = ConfigurationTypeUtil.findConfigurationType(configTypeId);
|
||||
if (configurationType != null) {
|
||||
myConfiguration = configurationType.getConfigurationFactories()[0].createTemplateConfiguration(project);
|
||||
myConfiguration.setName(config.getAttributeValue("name"));
|
||||
myConfiguration.readExternal(config);
|
||||
|
||||
final Executor executor = ExecutorRegistry.getInstance().getExecutorById(DefaultRunExecutor.EXECUTOR_ID);
|
||||
if (executor != null) {
|
||||
if (myConfiguration instanceof SMRunnerConsolePropertiesProvider) {
|
||||
myProperties = ((SMRunnerConsolePropertiesProvider)myConfiguration).createTestConsoleProperties(executor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (InvalidDataException e) {
|
||||
LOG.info(e);
|
||||
mySettings = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ignore) {
|
||||
@@ -192,13 +185,9 @@ public abstract class AbstractImportTestsAction extends AnAction {
|
||||
myImported = true;
|
||||
return new ImportedTestRunnableState(this, VfsUtilCore.virtualToIoFile(myFile));
|
||||
}
|
||||
if (mySettings != null) {
|
||||
if (myConfiguration != null) {
|
||||
try {
|
||||
final RunConfiguration configuration = mySettings.getConfiguration();
|
||||
if (configuration instanceof UserDataHolder) {
|
||||
((UserDataHolder)configuration).putUserData(TestResultsXmlFormatter.SETTINGS, mySettings);
|
||||
}
|
||||
return configuration.getState(executor, environment);
|
||||
return myConfiguration.getState(executor, environment);
|
||||
}
|
||||
catch (Throwable e) {
|
||||
LOG.info(e);
|
||||
@@ -210,7 +199,7 @@ public abstract class AbstractImportTestsAction extends AnAction {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return myImported && mySettings != null ? mySettings.getName() : myFile.getNameWithoutExtension();
|
||||
return myImported && myConfiguration != null ? myConfiguration.getName() : myFile.getNameWithoutExtension();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -224,7 +213,7 @@ public abstract class AbstractImportTestsAction extends AnAction {
|
||||
}
|
||||
|
||||
public RunConfiguration getInitialConfiguration() {
|
||||
return mySettings != null ? mySettings.getConfiguration() : null;
|
||||
return myConfiguration;
|
||||
}
|
||||
|
||||
public Project getProject() {
|
||||
|
||||
+7
-13
@@ -66,7 +66,6 @@ public class TestResultsXmlFormatter {
|
||||
|
||||
public static final String ROOT_ELEM = "root";
|
||||
|
||||
public static final Key<RunnerAndConfigurationSettingsImpl> SETTINGS = Key.create("RUN_CONFIGURATION_SETTINGS");
|
||||
|
||||
private final RunConfiguration myRuntimeConfiguration;
|
||||
private final ContentHandler myResultHandler;
|
||||
@@ -125,19 +124,14 @@ public class TestResultsXmlFormatter {
|
||||
endElement(ELEM_COUNT);
|
||||
}
|
||||
|
||||
RunnerAndConfigurationSettingsImpl settings =
|
||||
(RunnerAndConfigurationSettingsImpl)RunManagerImpl.getInstanceImpl(myRuntimeConfiguration.getProject()).getSettings(myRuntimeConfiguration);
|
||||
if (settings == null && myRuntimeConfiguration instanceof UserDataHolder) {
|
||||
settings = ((UserDataHolder)myRuntimeConfiguration).getUserData(SETTINGS);
|
||||
}
|
||||
if (settings != null) {
|
||||
final Element config = new Element("config");
|
||||
try {
|
||||
settings.writeExternal(config);
|
||||
}
|
||||
catch (WriteExternalException ignore) {}
|
||||
processJDomElement(config);
|
||||
final Element config = new Element("config");
|
||||
try {
|
||||
myRuntimeConfiguration.writeExternal(config);
|
||||
config.setAttribute("configId", myRuntimeConfiguration.getType().getId());
|
||||
config.setAttribute("name", myRuntimeConfiguration.getName());
|
||||
}
|
||||
catch (WriteExternalException ignore) {}
|
||||
processJDomElement(config);
|
||||
|
||||
CompositeFilter f = new CompositeFilter(myRuntimeConfiguration.getProject());
|
||||
for (ConsoleFilterProvider eachProvider : Extensions.getExtensions(ConsoleFilterProvider.FILTER_PROVIDERS)) {
|
||||
|
||||
Reference in New Issue
Block a user