Groovy 应用程序代码中的gradle生成属性
我想启动一些预定义环境的验收测试。我有一个文件env.groovy,带有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{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不同。