Groovy 应用程序代码中的gradle生成属性

Groovy 应用程序代码中的gradle生成属性,groovy,gradle,build.gradle,Groovy,Gradle,Build.gradle,我想启动一些预定义环境的验收测试。我有一个文件env.groovy,带有env{dev{…},test{…}config。 我在build.gradle中以这种方式传递一个属性: test { enabled = false systemProperties = System.getProperties() systemProperties['foo'] = 'bar' } 当我启动这样的测试时FooValTest @Test public void tes

我想启动一些预定义环境的验收测试。我有一个文件env.groovy,带有
env{dev{…},test{…}
config。 我在
build.gradle
中以这种方式传递一个属性:

test {
    enabled = false
    systemProperties = System.getProperties()
    systemProperties['foo'] = 'bar'
}
当我启动这样的测试时
FooValTest

  @Test
    public void testFooVal(){
        assertEquals("bar", System.getProperty("foo"));
    }
它失败了。 资料来源:

此标志
enabled=false
起作用-为什么?它不允许更改系统属性


我想保持
enabled=false
,因为它是继承的

这里没有设置实际的系统属性,只是修改返回的数据结构

根据我的经验,以下工作:

test {
  systemProperty "foo", "bar"
}

启用仅启用或禁用任务(见第14.8.3节)

否,情况并非如此。我发现解决方案还有
dependsOn drivers.collect{tasks[“someTask”]}
和从中获取的属性。我想这之所以有效,是因为测试任务有一个特殊的方法“systemProperty”,可以在gradle启动的测试JVM上设置系统属性。它与正在进行构建的Gradle JVM不同。