はじめに
今回の出来事に関しては具体的な原因の特定には至れておりません。
そのため、もし具体的な原因が知りたいという方にとっては参考にならない記事になっていること、予めご了承いただけますと幸いです。
環境
Ruby 2.6.5
Ruby on Rails 5.2.6
RSpec実行時に大量のログが出た
オリジナルアプリの機能追加に伴い、RSpecでテストを実行したところ、以下の画像のように意図しないログが吐き出された。
どうやらbefore do ... end
のブロック内に囲まれたテストデータが作成された時のログのようだ。
(大量のテストデータを作成していてお恥ずかしい限りです。)
画像は一つのdescribe
ブロック内のログであり、複数のdescribe
ブロックを作成してテストしている場合、毎回このログが出力されるので、どこまでテストが行われているのかわからないし、何より時間がかかりすぎて効率が悪い。
※本来であれば以下のように結果が返ってくると思います。
ということで原因を探ってみました。
gemのrails_12factor
が原因だった
git log
を遡ったり、どこのブランチからこんなことになってしまっているのか一つ一つみているうちに、RSpecの実行結果が期待通りのリポジトリ内ではgemのrails_12factor
がインストールされていなかった。
...そういえばHerokuにデプロイできなくて試しにインストールしていたことを忘れていた。
調べてみるとこのgem、最終リリース日が2014年10月14日であり、だいぶ古いgemであることがわかった。
それに伊藤淳一さんもrails_12factor
は使わない方が良いと仰られている。
伊藤淳一さんの記事(【初心者必見】RailsアプリをHerokuに公開するのにrails_12factorは不要)
伊藤淳一さんの記事にも書かれていることだが、メンテナンスが止まっており、かつ必要のないgemに関してはインストールすべきではないという良い教訓になった出来事でした。
そのためにも、
・使おうとしているgemがどれほどの人が利用していて
・いつアップデートされて
・バグなどの報告はないか
をきちんと調べる習慣をつけたいと思います。
もし原因がわかる方がいらっしゃたらコメントを頂けますと幸いです。
以上