build scripts: use default values of JUnit run configuration options if they are missing in xml file (IDEA-201665)

This commit is contained in:
nik
2018-11-06 14:54:00 +03:00
parent c13a2c0793
commit 95a1b1bed0
3 changed files with 16 additions and 2 deletions

View File

@@ -27,7 +27,7 @@ class JUnitRunConfigurationProperties extends RunConfigurationProperties {
messages.error("Cannot run configuration from '$file.name': module name is not specified")
}
Map<String, String> options = configuration.option?.collectEntries { [it.@name, it.@value] }
def testKind = options["TEST_OBJECT"]
def testKind = options["TEST_OBJECT"] ?: "class"
List<String> testClassPatterns
if (testKind == "class") {
testClassPatterns = [options["MAIN_CLASS_NAME"]]
@@ -53,7 +53,7 @@ class JUnitRunConfigurationProperties extends RunConfigurationProperties {
find { it.@name == "BuildArtifacts" && it.@enabled == "true" }?.
artifact?.collect { it.@name } ?: []
def vmParameters = options["VM_PARAMETERS"].tokenize()
def vmParameters = (options["VM_PARAMETERS"] ?: "-ea").tokenize()
def envVariables = first(configuration.envs)?.env?.collectEntries { [it.@name, it.@value] } ?: [:]
return new JUnitRunConfigurationProperties(configuration.@name, moduleName, testClassPatterns, vmParameters, requiredArtifacts, envVariables)
}

View File

@@ -0,0 +1,7 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="test default options" type="JUnit" factoryName="JUnit">
<module name="main-module"/>
<option name="MAIN_CLASS_NAME" value="com.example.test.MainTest"/>
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/bin"/>
</configuration>
</component>

View File

@@ -46,6 +46,13 @@ class JUnitRunConfigurationPropertiesTest {
loadRunConfiguration("test_method_fork_mode.xml")
}
@Test
fun `load default options`() {
val properties = loadRunConfiguration("test_default_options.xml")
assertEquals(listOf("com.example.test.MainTest"), properties.testClassPatterns)
assertEquals(listOf("-ea"), properties.vmParameters)
}
private fun loadRunConfiguration(fileName: String): JUnitRunConfigurationProperties {
val url = JUnitRunConfigurationPropertiesTest::class.java.getResource("runConfigurations/$fileName")
return JUnitRunConfigurationProperties.loadRunConfiguration(URLUtil.urlToFile(url), MockBuildMessages())