Laravel、アプリケーションテストを書く

以下、Laravel 5.7 のお話です

Laravel ではテスト時に testing環境変数を使うようです

phpunit.xml

// 省略

    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="BCRYPT_ROUNDS" value="4"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
        <env name="MAIL_DRIVER" value="array"/>
    </php>

// 省略

なので

  • テスト用のデータベースを作る
  • .env.testing を作り、そのデータベースを使用する

テスト用のデータベース作成

homestead_testing として作りました

Applicationキーを作成

$ php artisan key:generate --env=testing

マイグレーション実行

php artisan migrate --env=testing

.env.testing設定

テスト用の設定ファイル(.env.testing)を使い、テスト用のデータベースを用意します

テスト実行

./vendor/bin/phpunit