我正在尝试将系统属性传递给我的gradle测试。使用标准gradle,我会使用
test {
//... Other configurations ...
systemProperties = System.properties
}
使用kotlin DSL时,它将无法运行:
tasks.withType<Test> {
useJUnitPlatform()
options {
systemProperties(System.getProperties())
}
}
问题在于属性为HashTable
,预期类型为Map<String, String>
。
现在,我使用以下解决方法:
tasks.withType<Test> {
useJUnitPlatform()
val props = mutableMapOf<String, String>()
System.getProperties().forEach {
val key = it.key
val value = it.value
if (key is String && value is String) {
props[key] = value
}
}
options {
systemProperties(props)
}
}
有任何线索吗?谢谢。
答案 0 :(得分:0)
这对我有用:
systemProperties = System.getProperties().map { e -> Pair(e.key as String, e.value) }.toMap()
要传递单个系统属性:
systemProperty("property.name", System.getProperty("property.name"))