Kawaii Lab

プログラミングとかサービス開発とか

Rails のテストにおけるログレベルの変更ベストプラクティクス

Railsでは以下の方法でテストのログレベル変更ができるようです。

  • Rails.logger.levelに動的にレベルを付与する
  • configファイルでレベルを設定する

基本的にログはテスト結果のコンソールに出さないほうがいいでしょう。
UTの結果をPRに貼る場合に加工しないと見づらくなるためです。

なので configファイルでレベルfatalを設定し、ログ情報を取得するようなテストの場合Rails.logger.levelで変更するのが、ベストだと考えます。

少し詰まった点としてどのconfigを使用するかはRailsEnvの変数で決定するようです。
testケースの環境を作りたい場合は、RailsEnvtestを設定してconfig/environments/test.rbに書けばいいということですね。

また、Rails.logger.levelは場所に関係なく所属するclassのすべてのケースに影響するようです。
これもハマりっぽいので覚えておきます。