テスト結果を常に分かり易く

require 'autotest/redgreen'を有効にしてautotestを実行しておけば、テスト結果の下に緑や赤のバー「====」が表示されてそれなりに見易い環境なのだが、たまに特定のテストをrake testコマンドで実行した時はガックリする...。(黒1色でテスト結果が目立たないので。)そんな時はredgreenをインストールしておけば幸せになる。autotest/redgreenと同じ名前で紛らわしいが、以下のようにインストールして利用してみた。

インストール

$ sudo gem install redgreen

利用方法

  • test/test_helper.rbに「require 'redgreen'」を追記した。(オレンジ色の部分)
# test/test_helper.rb
ENV["RAILS_ENV"] = "test"
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
require 'test_help'

require 'redgreen'

class Test::Unit::TestCase
...(中略)...

表示の確認

  • rakeからテストを実行してみる。
$ rake test:units
(in /Users/bebe/railsapp/test_slip202)
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -Ilib:test "/Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader.rb" "test/unit/journal_test.rb" "test/unit/slip_test.rb" 
Loaded suite /Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader
Started
.E....F
Finished in 0.111935 seconds.

  1) Error:
test_copy_journal(SlipTest):
NoMethodError: You have a nil object when you didn't expect it!
The error occurred while evaluating nil.position
    /Users/bebe/railsapp/test_slip202/app/models/slip.rb:57:in `copy_journal'
    ./test/unit/slip_test.rb:34:in `test_copy_journal'
    /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/testing/default.rb:7:in `run'

  2) Failure:
test_truth(SlipTest)
    [./test/unit/slip_test.rb:6:in `test_truth'
     /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/testing/default.rb:7:in `run']:
 is not true.

7 tests, 16 assertions, 1 failures, 1 errors
rake aborted!
Command failed with status (1): [/System/Library/Frameworks/Ruby.framework/...]

(See full trace by running task with --trace)
$ rake test:units
(in /Users/bebe/railsapp/test_slip202)
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -Ilib:test "/Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader.rb" "test/unit/journal_test.rb" "test/unit/slip_test.rb" 
Loaded suite /Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader
Started
.......
Finished in 0.120461 seconds.

7 tests, 21 assertions, 0 failures, 0 errors
  • テスト結果そのものに色が付くようになった。
  • 途中のキーワードにも色が付くので、問題の詳細も見易くなった。
  • autotestの結果も同じ書式で表示される。(バー「====」は表示されない。)

参考ページ

素晴らしい情報に感謝です!