我正在使用Behat和Mink測試使用Laravel框架的應用程序,並且我想在運行測試之前使用Artisan設置數據庫。獲取Behat中的base_url @BeforeSuite
爲了正確配置Artisan,我需要知道將要測試的域,以及因此使用哪個Laravel環境。這在使用的各種配置文件下的behat.yml中列出。例如:
default:
extensions:
Behat\MinkExtension\Extension:
base_url: http://www.example.com
...
daniel:
extensions:
Behat\MinkExtension\Extension:
base_url: http://example.dev
是否可以從@BeforeSuite獲取base_url的值?
這裏的主要問題似乎是@BeforeSuite必須是靜態的,因此無法訪問Mink,所以我不能只是$this->getMinkParameter('base_url')
。
我可以通過$suiteEvent->getContextParameters()
訪問參數,所以我可以在那裏複製網址,但有沒有更清晰的解決方案。
這完美地工作。我不能把整個Artisan/Laravel的答案放在這裏,但對於任何有興趣的人來說,這將是這個答案和我以前對這個問題的回答的結合:http://stackoverflow.com/questions/24643449/laravel-4 -2-artisancall-ignoring-env-option/26425714#26425714 – DanielM 2014-10-17 14:09:22
下面是一個可以大致顯示它如何工作的要點:https://gist.github.com/Gisleburt/62ce3507eb792c42dfae – DanielM 2014-10-17 14:20:55