【Laravel】Sailで構築したプロジェクトでテスト用のDBを作成する
やりたいこと
Laravel Sailで構築したプロジェクトでテスト用のDBを作成したい。
DBはmysqlを想定しています。
実装
1 .env.testingを作成する
.envファイルをコピーして.env.testingを作成します。
基本は.envファイルと同様の設定で問題ありませんが、DBの設定はテスト用に変更します。
.env.testing
.
.
.
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=テスト用データベース名
DB_USERNAME=root
DB_PASSWORD=
.
.
.
2 phpunit.xmlを編集する
phpunit.xmlにテスト用DBを設定します。
<php>
<env name="APP_ENV" value="testing"/>
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="CACHE_DRIVER" value="array"/>
<server name="DB_DATABASE" value="テスト用データベース"/> // ここを追加
<!-- <env name="DB_CONNECTION" value="sqlite"/> -->
<!-- <env name="DB_DATABASE" value=":memory:"/> -->
<env name="MAIL_MAILER" value="array"/>
<env name="QUEUE_CONNECTION" value="sync"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="TELESCOPE_ENABLED" value="false"/>
</php>
3 テスト用データベースを作成する
以下コマンドでmysqlに入ります。
mysql -h 127.0.0.1 -u root -P 3306 -p
以下コマンドでデータベースを作成します。
CREATE DATABASE テスト用データベース;
4 テストDB用のキーを作成する
以下コマンドで、テストDB用のキーを作成します。
./vendor/bin/sail artisan ket:generate --env=testing
以上でテスト用のDB作成は完了です。
テスト内でDBを使用してみてください。
以上!!!!!!!