Gradle 测试中设置的系统属性对debugTest不可见

Gradle 测试中设置的系统属性对debugTest不可见,gradle,Gradle,当我运行以下gradle脚本时: apply plugin: 'java' task debugTest(type: Test) { println systemProperties['PROP'] } test { systemProperties['PROP'] = 'true' } $ gradle debugTest 我希望它打印为true,但它打印为null 有人能解释一下原因吗。您只是为名为test的任务而不是为名为debugTest的任务设置了系统

当我运行以下gradle脚本时:

apply plugin: 'java'

task debugTest(type: Test) {
    println systemProperties['PROP']
}

test {  
    systemProperties['PROP'] = 'true'   
}

$ gradle debugTest
我希望它打印为true,但它打印为null


有人能解释一下原因吗。

您只是为名为test的任务而不是为名为debugTest的任务设置了系统属性。您需要了解,虽然test和debugTest都来自同一类型的测试,但这里有两个完全不同的任务。一个选项可能是在所有类型测试任务上应用系统属性配置:

tasks.withType(Test){
     systemProperties['PROP'] = 'true'
}
另一个问题是,您在配置块的debugtest中设置了println语句。相反,您应该使用动作块。此外,这根本不能证明该属性是否在测试jvm中可用。

我假设systemProperties是针对每个任务实例定义的,而不是全局定义的。