我有一個項目,我通常使用grails run-app
命令調試/運行。我想運行一個測試,但沒有讓服務器只運行特定的測試。運行grails功能測試,沒有嵌入tomcat啓動
我通常在後臺以調試模式一直運行服務器。
我已經試過玩弄於iteli-J的運行配置,與最新的嘗試是grails test-app functional: className
我有一個項目,我通常使用grails run-app
命令調試/運行。我想運行一個測試,但沒有讓服務器只運行特定的測試。運行grails功能測試,沒有嵌入tomcat啓動
我通常在後臺以調試模式一直運行服務器。
我已經試過玩弄於iteli-J的運行配置,與最新的嘗試是grails test-app functional: className
這個插件,也許可以幫助你。
Grails functional-test-development Plugin
這個插件的目的是使開發功能測試Grails的通過促進對已經運行的應用程序中運行你的測試更加方便。它利用了Grails 1.3.5中增加的改進功能測試支持,並且不適用於早期版本。
在Grails 2.4.4中如果您重寫baseUrl,您可以針對非本地主機的服務器運行測試。例如,我們有一個託管在AWS上的預生產服務器,我們運行了一部分來自Jenkins的功能測試,部署後作爲煙霧測試。
grails -plain-output test-app -baseUrl=https://foo.bar.org/ -echoOut -echoErr functional:
雖然有效,但test-app
仍然啓動嵌入式tomcat服務器。但是,通過一些挖掘,我發現覆蓋服務器主機指向正在運行的實例將導致測試運行,而不啓動嵌入式tomcat。有幾個方法可以做到這一點:
傳遞命令行中的值:
grails -plain-output test-app -Dgrails.server.host=foo.bar.org -baseUrl=https://foo.bar.org/ -echoOut -echoErr functional:
或者重寫Config.groovy中的價值,爲特定的環境也應該工作:
...
preProd {
...
grails.server.host = 'foo.bar.org'
...
}
...
它在測試應用程序中沒有記錄,但在run-app下提及,它也可用於測試應用程序。
這是有效的,因爲Grails通過嘗試打開到服務器主機/端口的連接來確定是否應啓動嵌入式服務器,並且如果成功則跳過啓動。
從試驗和錯誤我發現,即使基址變成冗餘信息,我也指出grails.server.host
和-baseUrl
的最佳結果。可能這是因爲我的情況涉及到ssl連接,但我試着用-https
而不是-baseUrl=...
運行,並且測試只是掛起。
有人可以運行grails交互式控制檯,並從那裏執行調試模式的平臺? – 2014-10-21 20:54:49