rspecの出力結果をジョジョ風にしてみる


ジョジョ・フォーマッター

通常の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_pendingexample_failedはそれぞれペンディング/失敗した場合に呼び出されるスタンド・・いやメソッドだ。思う存分、お好みのジョジョ台詞に書き換えればいい。

フォーマッターの定義はこれだけ。早速rspecを実行してみよう。require, formatオプション付きで実行する。

📄.rspec
rspec --require ./lib/jojo_formatter.rb --format JojoFormatter spec/

ジョジョフォーマット

ディ・モールト!(非常に良いぞッ!) こだわるならッツ! .rspecにオプション設定を記述しておきたいッッ!

--color
--require ./lib/jojo_formatter.rb
--format JojoFormatter

さあ、変更を共有レポジトリにpushして、メンバーの度肝を抜いてやろう。

番外編

こんなのも作ってみた。シリーズ化できそうな・・・

カイジフォーマット

関連する記事


コメントする

メールアドレスが公開されることはありません。

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください