Laravel sailでテストコード書こうとしたらエラーが出た時のまとめ。
Failed to parse time string
タイムゾーンのエラーみたいです。
sail shell
date
で調べたらUCTでした。
コンテナはデフォルトでUCTらしいです。
docker-compose.yml
(略)
environment:
TZ: Asia/Tokyo
(略)
これでOK
Base table or view not found: 1146 Table '×××' doesn't exist
テスト用にDBを分けていたんですが、設定をミスってました。
env.testing
APP_ENV=testing
APP_KEY=
// 接続したいDBの情報を設定する
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=test_database
DB_USERNAME=root
DB_PASSWORD=
keyを作る
sail artisan key:generate --env=testing
phpunit.xml
<php>
<env name="APP_ENV" value="testing"/>
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="CACHE_DRIVER" value="array"/>
<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>
テスト用のDBを作る。
作り直す時は:freshで
sail artisan migrate --env=testing
これでOK
参考