Hatena::ブログ(Diary)

PvP:: Scala勉強中 このページをアンテナに追加 RSSフィード

2010-03-13

RSpecで自分フォーマッター

ずっとやってみたかったけど、後回しにしていたことをやっとやってみました。

思ったより簡単。

まずはシンプルに、個人的な欲求で、RDocドキュメント化するときにPendingsやFailuresが下部に表示されないようにするフォーマッタ作成。

クラス定義は既存のFormatterを継承して簡単です。

require "spec/runner/formatter/sepcdoc_formatter"
module Spec::Runner::Formatter
  class SpecdocWithoutPendingsFormatter < SpecDocFormatter
    # 何もしないように上書きするだけ
    def dump_pending
    end

    def dump_failure(counter, failure)
    end
  end
end

Spec::Runner::Formatter内にクラス定義する必要はないです。


これを使うには実行時にオプションに指定

  -- require spec/formatters/without_pendings_formatter.rb # ファイル指定
  -- format Spec::Runner::Formatter::SpecdocWithoutPendingsFormatter

この require オプションが普通に便利そうですね。

ExampleやExampleGroupの値や挙動をいじれそうです。


オプションが長いので、これを打つのは大変です。

Spec::Runner::Options::EXAMPLE_FORMATTERS Hash に値を追加してショートカットとかできそうですが、

とりあえずオプションファイルで書いておいて --option 指定する方法に落ち着きました。

  spec spec_file_spec.rb -O spec/formatters/without_pendings_formatter

というかんじで使ってます。

舞波舞波 2010/04/06 06:12 ベンチマーク用のフォーマッターを作ろうとして飛んできました。
結局 -fo (Formatter::ProfileFormatter) が求めるモノだと気付いたんですが
その結論に一瞬で辿り着けたのはここの情報のお陰です。ありがとう!

☆☆☆☆☆ (←はてな持ってないので気持ちだけ!)

PvPPvP 2010/04/09 13:57 よかったです!
まさか誰かに役立つとはあんまり思ってなかったので嬉しいです。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/PvP/20100313/1268438711