2016-05-31 3 views
0

Друг указал мне на nightwatchjs сегодня (http://nightwatchjs.org/), и мне захотелось поиграть, чтобы понять, как легко это использовать против нашего приложения Google App Engine.Как запустить nightwatch против приложения Google App Engine

Я пытаюсь создать задачу градиента, которая вызывает команду nightwatch, но сначала гарантирует, что appengine работает, вызывая команду appengineRun.

В настоящее время задача выглядит примерно так:

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(); 
} 

Моя первая мысль есть: Там должна быть более простой способ!?!?

Итак, мои вопросы, на самом деле это: кажется, работает нормально, за исключением того, что он останавливается на appengineRun, потому что он не работает в режиме демона

  1. Эта задача. Как я могу заставить это сделать это?
  2. Если это не лучший способ сделать это, то что это такое?

Если это не сработает, я вернусь к использованию тестов Selenium в JUnit. Для тех, кто заинтересован: мне не нужно перепрыгивать через те же обручи с Selenium/JUnit, потому что задача appendineFunctionalTest gradle гарантирует, что dev-приложение уже запущено.

Спасибо за любую помощь, которую могут предложить люди!

ответ

0

Я думаю, все, что вам нужно, это запустить его после appengineRun? вам просто нужно добавить dependsOn: appengineRun.

Кроме того, все эти команды внутри 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" 
    } 
    } 
} 
+0

Спасибо за ваш ответ. Это, безусловно, выглядит более чистым, но, к сожалению, ничего не происходит после appengineRun. Я считаю, что это происходит потому, что он не работает в режиме демона? – ndtreviv

+0

О, да, я думаю, вам нужно поставить 'daemon = true' в' appengine {} 'config –

+0

Это работает, но это не так, как сейчас, когда я запускаю задачу appengineRun для проверки некоторых работ по разработке, на которые также влияет это настройка. Я не вижу выход журнала и т. Д. На консоль. Есть ли способ установить этот параметр демон только для этой задачи? – ndtreviv