読者です 読者をやめる 読者になる 読者になる

RubyMine と Ruby 1.9

RubyMine のテストランナーを便利に利用する

RubyMine のテストランナーは進捗もゲージが増えていって爽快だし、テスト対象のファイルと項目がツリーになって表示されてどんどん緑ランプが付いて消えていくのも楽しいし、落ちたら赤いランプが付いてそのまま居残り、クリックしたらテスト及びテスト対象コードに飛べるし、飛んだ後ブレークポイント打って今度は右クリックすると対象のテストだけデバッグ実行できて(これこれ…これだ…)感あります。

ただし Ruby 1.9 だと、同梱されているものではない、新しい 'test-unit' gem ( Test::Unit 2 )を入れないとなりません。 Gemfile に書いておきます。

Test::Unit Special Notes

これしないと、あの悪名高き empty test suite. エラーです。 Ruby 2.0.0 に付いてる test-unit は 2.0.0 だったので2系が必要ってことなんでしょうか。

test-unit と RSpec

test-unit ってソース読むと Kernel#at_exit に引っかけて駆動してます。それは全然良いんですが、自分の環境だと RubyMine と CircleCI で RSpec の実行後に突然ユニットテストを実行しようとしてこけて全体が fail するという惨めな状況になりまして、検索したら RSpec を動かすコード中に require 'test-unit' している箇所があるとそうなるよと言われており、自分のコード中にそんなところは無く(多分)、 RubyMine がやってんのかなあ…。とほげーと思って結局 test-unit 側に「おめーこのあと実行走らすなよ」ってフラグを spec_helper.rb に書いておきました…。

Test::Unit::AutoRunner.need_auto_run = false if defined? Test::Unit::AutoRunner

相当切ないです。テスト混ぜるなやってことですか。そうですか。