通常のrspecの出力は 「.(成功)」, 「F(失敗)」, 「*(ペンディング)」となっている。この味気ない出力を、殺伐とした開発現場に咲くひまわりとなるべく、ジョジョ風にアレンジするというプチ・ハックを実施してみようと思う。
環境
- rspec 2.14 (rspec 3でも基本は同じ)
rspecではカスタムフォーマッターを簡単に作成できるようになっている。適当な場所にジョジョ・フォーマッターを定義する。ここでは ./lib/jojo_formatter.rb
に記述することにする。
📄./lib/custom_formatter.rb
require 'rspec/core/formatters/base_text_formatter' class JojoFormatter < RSpec::Core::Formatters::BaseTextFormatter def example_passed(example) super(example) output.print success_color('・') end def example_pending(example) super(example) output.print pending_color('ン~') end def example_failed(example) super(example) output.print failure_color('ゴ') end def start_dump super() output.puts end end
読めば分かると思うが、example_passed
はテストが成功した場合、example_pending
example_failed
はそれぞれペンディング/失敗した場合に呼び出されるスタンド・・いやメソッドだ。思う存分、お好みのジョジョ台詞に書き換えればいい。
フォーマッターの定義はこれだけ。早速rspecを実行してみよう。require, formatオプション付きで実行する。
📄.rspec
rspec --require ./lib/jojo_formatter.rb --format JojoFormatter spec/
ディ・モールト!(非常に良いぞッ!) こだわるならッツ! .rspec
にオプション設定を記述しておきたいッッ!
--color --require ./lib/jojo_formatter.rb --format JojoFormatter
さあ、変更を共有レポジトリにpushして、メンバーの度肝を抜いてやろう。
番外編
こんなのも作ってみた。シリーズ化できそうな・・・
関連する記事
- rspecを実行するVimプラグイン【run-rspec.vim】を作った
- 【Rails 5】ヘルパーを使用しているactive_decoratorをrspecでテストする
- ActiveRecord依存のModuleをrspecでテストする
- 自分はこんな感じでRailsアプリを作っております
- chosen-railsによる検索機能付きセレクトボックスで、検索画面作成の手間を省く