phpUnitテスト実行中出たエラーの中身を知りたい!

laravelでphpunitをよく書いてます。

テスト実行時に出たエラー内容を調べるときに、DBがリセットされるので悩んでました。

このオプションを使えば、DBの中身がリセットされずに残る!

なので、DBの状態が分かります!

2023/4/11時点

再度実施した結果、なぜかDBの中身が見れませんでした…

これを書いた時は、見れてたはずだったのですが、、、

実施したテストの違いか、他に要因があったのか…

また、今度実施して分かったらこちらの記事修正します。

もし、他にDBをリセットせずに残す方法とか知ってる方いましたらコメントで教えていただけると助かります。

経緯

テスト実行時に出たエラー内容を調べるときに、DBがリセットされる。

なので、処理を追うのが大変。

特に、他の人が作ったテストに追加する場合処理内容も追わないといけないのでさらに大変

やりたいこと

テストでエラーが発生した時点のDBの状態が知りたい!

エラーが発生した状態で、SQLを叩いてなぜエラーだったのか突き止めたい!

オプションをつけることで可能!

このオプションをつけます!

こうすることで、

・エラーが発生したタイミングでテストを止める

・DBがリセットされないので、エラーが発生した時点のDBの状態がわかる

--stop-on-failure --debug

以下は実行結果です。(テストの名前やディレクトリ名は適当に変えてます。)

root@test# ./vendor/bin/phpunit ./test/Test.php  --stop-on-failure --debug
PHPUnit 8.5.15 by Sebastian Bergmann and contributors.

Test 'Tests\XXXXTest::testA' started
Test 'Tests\XXXXTest::testA' ended
Test 'Tests\XXXXTest::testB' started
Test 'Tests\XXXXTest::testB' ended

実行しているテストの名前も出るので、落ちたエラーのテスト名はわかる!!

一年前に知りたかったーorz


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です