Laravel 測試 .env.testing 設置檔
在 Laravel 執行測試,主要會以 phpunit.xml 設定檔案來定義環境變數。
預設的內容為
<php>
<server name="APP_ENV" value="testing"/>
<server name="BCRYPT_ROUNDS" value="4"/>
<server name="CACHE_DRIVER" value="array"/>
<server name="MAIL_DRIVER" value="array"/>
<server name="QUEUE_CONNECTION" value="sync"/>
<server name="SESSION_DRIVER" value="array"/>
</php>
預設的 session 及 cache 都是以 Array driver 方式處理,表示在測試過程不會真的產生 session 或 cache 資料。
其中, APP_ENV 預設為 testing
直接複製 .env 命名為 .env.testing ,並且將 .env.testing 的 APP_ENV 設定為 testing
在執行 phpunit 時, .env.testing 會覆寫掉 .env 的設定值
此外,針對一些需要透過 migration 等相關 artisan指令操作,可以透過 –env=testing 來讀取.evn.testing 檔案
例如:
php artisan migrate --env=testing
//or
php artisan migrate:refresh --env=testing