created: 2023-08-24T07:06:52.793Z

Mojo::Test でのテストで500エラーになるときのログメッセージをみる

Test::Mojo でテストを行なっている時、レスポンスが500の場合でもログメッセージを出力したりしない。

これは親切な仕様で、エラーを期待している場合にもいちいち表示されていたらテストレポートが見にくくてしょうがないためこうなっている。

ただし、200を期待している場合に500エラーが返ってきている場合に「どこの処理でエラーになったか」を知りたくなる。それを見るためにはログレベルを環境変数でセットすることになる。

# テストの先頭にこんな感じで環境変数を入れる
$ENV{"MOJO_LOG_LEVEL"} = "error";
use strict;
use warnings;

スタックトレースまでは出してくれないが、デフォルトの形式でログを出してくれる。

[2023-08-24 16:13:10.67616] [241] [error] [Nff0Eb51BHMK] Can't call method "get_columns" on an undefined value at /app/src/Home.pm line 63.