尝试从Gradle测试任务访问另一个闭包属性

时间:2014-07-27 03:53:53

标签: google-app-engine groovy gradle

首先,我的真正目标是告知我的功能测试Gradle将启动我的开发服务器的端口(如果您有兴趣,请使用this plugin)。最简单的方法似乎是设置系统属性。所以这就是我要做的事情:

appengine {
  httpPort = 8081
  ...
}

test {
  systemProperty "httpPort", appengine.httpPort
}

我还是Gradle的新手,可能只是不太了解我的Groovy范围规则,但应该可以这样做,对吧?我见过使用"全球def"做这种事情,但似乎对于这种特殊情况,这是一个更优雅的解决方案。

1 个答案:

答案 0 :(得分:0)

啊哈,这就是诀窍:我想特别将系统属性传递给我的功能测试。出于某种原因,我虽然test闭包是正确的地方,appengineFunctionalTest任务将继承,但事实并非如此。一旦我将test关闭专门更改为appengineFunctionalTest,Gradle就可以连接点了。我仍然对这里的范围规则感到有些迷惑,但我相信我会学习。 :)

appengine {
  httpPort = 8081
  ...
}

appengineFunctionalTest {
  systemProperty "httpPort", httpPort
}

所以不幸的是,看起来这个Q& A现在特别关注问题中引用的App Engine Gradle插件。感谢帮助过的评论者!