diff --git a/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java b/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java index fec576e20d1c..b1da0e101219 100644 --- a/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java +++ b/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java @@ -22,10 +22,7 @@ import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.options.SettingsEditorGroup; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.Comparing; -import com.intellij.openapi.util.DefaultJDOMExternalizer; -import com.intellij.openapi.util.InvalidDataException; -import com.intellij.openapi.util.WriteExternalException; +import com.intellij.openapi.util.*; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; @@ -213,7 +210,7 @@ public class JUnitConfiguration extends JavaTestConfigurationBase { @Override public void setVMParameters(@Nullable String value) { - myData.setVMParameters(value); + myData.setVMParameters(StringUtil.nullize(value)); } @Override @@ -446,7 +443,7 @@ public class JUnitConfiguration extends JavaTestConfigurationBase { JavaRunConfigurationExtensionManager.getInstance().writeExternal(this, element); DefaultJDOMExternalizer.writeExternal(this, element); final Data persistentData = getPersistentData(); - DefaultJDOMExternalizer.writeExternal(persistentData, element); + DefaultJDOMExternalizer.writeExternal(persistentData, element, new DifferenceFilter<>(persistentData, new Data())); if (!persistentData.getEnvs().isEmpty()) { EnvironmentVariablesComponent.writeExternal(element, persistentData.getEnvs()); @@ -572,7 +569,7 @@ public class JUnitConfiguration extends JavaTestConfigurationBase { private String[] UNIQUE_ID = ArrayUtil.EMPTY_STRING_ARRAY; private String TAGS; public String TEST_OBJECT = TEST_CLASS; - public String VM_PARAMETERS; + public String VM_PARAMETERS = "-ea"; public String PARAMETERS; public String WORKING_DIRECTORY; public boolean PASS_PARENT_ENVS = true; diff --git a/plugins/testng/src/com/theoryinpractice/testng/configuration/SearchingForTestsTask.java b/plugins/testng/src/com/theoryinpractice/testng/configuration/SearchingForTestsTask.java index bee0e60df76d..d0c70d6e1e19 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/configuration/SearchingForTestsTask.java +++ b/plugins/testng/src/com/theoryinpractice/testng/configuration/SearchingForTestsTask.java @@ -1,18 +1,4 @@ -/* - * Copyright 2000-2014 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. - */ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.theoryinpractice.testng.configuration; @@ -131,7 +117,7 @@ public class SearchingForTestsTask extends SearchForTestsTask { int logLevel = 1; try { final Properties properties = new Properties(); - properties.load(new ByteArrayInputStream(myConfig.getPersistantData().VM_PARAMETERS.getBytes())); + properties.load(new ByteArrayInputStream(myConfig.getVMParameters().getBytes())); final String verbose = properties.getProperty("-Dtestng.verbose"); if (verbose != null) { logLevel = Integer.parseInt(verbose); diff --git a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfiguration.java b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfiguration.java index 74338dff9a32..38c3d1027f8c 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfiguration.java +++ b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfiguration.java @@ -1,6 +1,4 @@ -/* - * Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. - */ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.theoryinpractice.testng.configuration; @@ -20,6 +18,7 @@ import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.options.SettingsEditorGroup; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.DefaultJDOMExternalizer; +import com.intellij.openapi.util.DifferenceFilter; import com.intellij.openapi.util.WriteExternalException; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; @@ -344,7 +343,7 @@ public class TestNGConfiguration extends JavaTestConfigurationBase { super.writeExternal(element); JavaRunConfigurationExtensionManager.getInstance().writeExternal(this, element); DefaultJDOMExternalizer.writeExternal(this, element); - DefaultJDOMExternalizer.writeExternal(getPersistantData(), element); + DefaultJDOMExternalizer.writeExternal(getPersistantData(), element, new DifferenceFilter<>(getPersistantData(), new TestData())); EnvironmentVariablesComponent.writeExternal(element, getPersistantData().getEnvs()); Element propertiesElement = element.getChild("properties"); diff --git a/plugins/testng/src/com/theoryinpractice/testng/model/TestData.java b/plugins/testng/src/com/theoryinpractice/testng/model/TestData.java index fec5c3d91181..c0f448e2c1cd 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/model/TestData.java +++ b/plugins/testng/src/com/theoryinpractice/testng/model/TestData.java @@ -1,6 +1,4 @@ -/* - * Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. - */ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.theoryinpractice.testng.model; import com.intellij.execution.ExternalizablePath; @@ -11,9 +9,11 @@ import com.intellij.execution.junit2.info.MethodLocation; import com.intellij.execution.testframework.TestSearchScope; import com.intellij.openapi.module.Module; import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiMethod; import com.intellij.psi.PsiPackage; +import org.jetbrains.annotations.Nullable; import java.util.*; @@ -28,7 +28,8 @@ public class TestData implements Cloneable public String METHOD_NAME; public String GROUP_NAME; public String TEST_OBJECT; - public String VM_PARAMETERS; + // should be private, but for now we use DefaultJDOMExternalizer, so, public + public String VM_PARAMETERS = "-ea"; public String PARAMETERS; public String WORKING_DIRECTORY; public String OUTPUT_DIRECTORY; @@ -81,8 +82,8 @@ public class TestData implements Cloneable return OUTPUT_DIRECTORY == null ? "" : OUTPUT_DIRECTORY; } - public void setVMParameters(String value) { - VM_PARAMETERS = value; + public void setVMParameters(@Nullable String value) { + VM_PARAMETERS = StringUtil.nullize(value); } public String getVMParameters() { diff --git a/resources/src/idea/RunManager.xml b/resources/src/idea/RunManager.xml index 73d5f1446d05..4ffa94a911da 100644 --- a/resources/src/idea/RunManager.xml +++ b/resources/src/idea/RunManager.xml @@ -1,11 +1,9 @@ - -