2013-05-17 00:00:59 +0900
rake spec
での冗長な出力を止める方法。
rspec-rails
を組み込んだRailsプロジェクトでrake spec
を実行すると、以下のように(spec
タスクが依存している)test:prepare
タスクの出力や、実行するspecファイル名などがずらずらと表示されます。
$ bundle exec rake spec
SET
SET
CREATE EXTENSION
COMMENT
(snip)
INSERT 0 1
INSERT 0 1
INSERT 0 1
/Users/juno/.rbenv/versions/2.0.0-p195/bin/ruby -S rspec ./spec/controllers/admin/castings_controller_spec.rb ./spec/controllers/admin/characters_controller_spec.rb
........................................................***...
これを黙らせてシンプルな出力にするには、Rakefile
あたりに以下のコードを記述しておきます。
これによって、デフォルトのspec
タスクをいったんクリアし、
rake spec
前にtest:prepare
を実行しなくなる- 実行するspecファイル名などを表示しなくなる
という挙動が再定義されます。
test:prepare
が暗黙的には実行されなくなるため、あらかじめ実行しておきます。
$ bundle exec rake db:create RAILS_ENV=test
$ bundle exec rake test:prepare
そしてspec
タスクを実行すると、余計な出力のない状態でテスト結果が表示されます。
$ bundle exec rake spec
........................................................***...
spec
タスクをクリアしないでverbose = false
を設定するいい方法はないかな…。