一位朋友今天向我指出了nightwatchjs(http://nightwatchjs.org/),我希望有一个游戏,看看使用我们的Google App Engine应用程序是多么容易。
我尝试创建一个调用nightwatch命令的gradle任务,但首先通过调用appengineRun命令来确保正在运行appengine。
目前,任务看起来像这样:
task nightwatch(){
tasks.appengineDownloadSdk.execute();
tasks.compileJava.execute();
tasks.processResources.execute();
tasks.classes.execute();
tasks.appengineEnhance.execute();
tasks.war.execute();
tasks.appengineExplodeApp.execute();
tasks.appengineRun.execute();
exec {
executable "bash"
args "-c","nightwatch src/functionalTest/nightwatch/nightwatch.js"
}
tasks.appengineStop.execute();
}
我的第一个想法是:必须有一个更简单的方法!?!?
所以,我的问题实际上是这样的:
如果这不起作用,我会回到JUnit测试中使用Selenium。对于那些感兴趣的人:我不需要使用Selenium / JUnit跳过相同的箍,因为appengineFunctionalTest gradle任务确保dev应用程序已经在运行。
感谢人们提供的任何帮助!
答案 0 :(得分:0)
我猜您只需要在 appengineRun之后运行吗?你只需要添加dependsOn: appengineRun
。
此外,{grager}内部task
内的所有命令都会在gradle读取脚本时执行,而不是在执行taks时执行。这是一个配置块。您需要在那里使用doLast {}
来设置应该执行的代码。
试试这个:
appengine {
daemon = false
}
task appengineDaemon() {
doLast {
appengine {
daemon = true
}
}
}
appengineRun.mustRunAfter(appengineDaemon)
task nightwatch(dependsOn: [appengineRun, appengineDaemon]) {
doLast {
exec {
executable "bash"
args "-c","nightwatch src/functionalTest/nightwatch/nightwatch.js"
}
}
}