ratio - rational - irrational

« Rakeからのユニットテストで属性getterが変な件 | Main | 今年の言語 »

2007年01月02日

RSpecに色を付ける

RubyのTest::Unitの表示を色つきにしたかったら、多分、redgreenを使うのが一番スマートなんだと思う。

でも、私はTerm::ANSIColorを使った反転表示が気に入っているので、youpyの人のやつを使ってる。RedGreenでも設定すればできるのかもしれないけど、よく分かってない。

で、これをRSpecでもやりたいわけだ。youpyさんと同じく強引に、こんな感じになった。なんか、車輪を再発明してそうで嫌だね。

require 'term/ansicolor'
module Spec
  module Runner
    module Formatter
      class BaseTextFormatter
        include Term::ANSIColor
        def initialize_with_color(output, dry_run = false, color = false)
          initialize_without_color(output, dry_run, true)
        end
        alias_method :initialize_without_color, :initialize 
        alias_method :initialize, :initialize_with_color

        def green(text)
          on_green(text)
        end
        def red(text)
          on_red(text)
        end
      end
    end
  end
end

* もっとスマートな解

by かくたにさん



トラックバック

この記事のトラックバックpingのURL:
http://idm.s9.xrea.com/blog/mt-tb.cgi/573

コメント

spec --colour オプションじゃダメっすか。

  • Posted by: かくたに at 2007年01月03日 00:20

いや、反転表示が欲しかったのと、それからRSpec on RailsのRakeタスクからRunnerにオプションを渡す方法が分からなかったもので。

どうしたらよいんでしょうか。

  • Posted by: Yugui at 2007年01月03日 09:32

Rakefileに、

ENV['RSPECOPTS'] = '-c'

でビルトインの色はつきます。dRuby経由も0.7.6相当(trunkとか)では色がつくはず。

  • Posted by: かくたに at 2007年01月04日 11:37

あ、そうか。環境変数ですか。ありがとうございます。これで醜いinitialize書き換えをしないで済みます。

でも、色は、反転のほうがいいなぁ。BaseTextFormatterを派生すればいいのか。調べてみます。

  • Posted by: Yugui at 2007年01月04日 12:25

新しくコメントをつける

よくわからない理由により、コメントが即座には反映されないかもしれませんか゛、ボタンを押して元の画面に戻ってきたならたぶん正しく送信されています。




blog操作

検索


カテゴリー

このブログについて

あわせて読みたい

follow yugui at http://twitter.com
© 2007 Yugui

Powered by Movable Type 3.2-ja-2