テスト結果を常に分かり易く
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の結果も同じ書式で表示される。(バー「====」は表示されない。)