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