[Ruby][備忘録]ZenTestでRSpecを自動実行できるようにした
あらすじ
ZenTestを使えばテストを*specファイルを変更したタイミングで実行できるという事を知った。
ファイル編集する -> alt+tabでウィンドウ切り替える -> プロンプトでrspecコマンドうつ…の繰り返しとはなんだったのか……。
参考サイト
- http://randd.kwappa.net/2011/08/07/338:title
- http://d.hatena.ne.jp/seiunsky/20100131/1264913047:title
環境
- Windows XP
- 導入済み
- Ruby 1.8.7
- Rspec 2.5
- Rubygems バージョン失念
手順
ZenTest導入
まずはZenTestをgemで導入……しようと思ったらgem自体のアップデートを要求された。
gem update --system
アップした後はgem 1.8.10となった。gemを最新にしたらZenTestを導入。
gem install ZenTest
次にソースファイルを用意。Growlで何かしら通知するファイルを作りたかったのでそんな感じの名前に。
growl_for_ruby
┣.autotest
┣autotest
┃┗discover.rb
┣growl.rb # 実際にソースをゴリゴリ書いていく
┗spec
┗growl_spec.rb # テストコード
.autotest
これにはまだ何も書いていない。設定を書いていくらしい。
autotest/discover.rb
autotestコマンド実行時にautotestフォルダに入っているdiscover.rbを読みに行くようだ。中身は以下。
Autotest.add_discovery { "rspec2" }
autotestでrspec 2.Xを使うよってことかな。
spec/growl_spec.rb
テストコード。rspecの書き方にならってテストを書いていく。注意しないといけないのは、テストコードはspecフォルダ以下に入れないと読み込んでくれない。[1]
テスト実行
一つ新しいプロンプトを開き、プロジェクトルートへ移動。そしてautotest実行。
$ autotest
loading autotest/rspec2
C:\ruby1.8\bin\ruby -rrubygems -S C:/ruby1.8/lib/ruby/gems/1.8/gems/rspec-core-2.5.1/bin/rspec --tty 'C:/xx/growl_for_ruby/spec/growl_spec.rb'
成功すると待ち状態になり。以後はコードを保存する毎? にrspecコマンドが走ってくれる!
その他
どうもRubyのPATHにスペースが入っているとLoad Errorとなる様子。またお前か。ここでもデフォルトパスでインストールした弊害が……。
と、もう一つ。autotestの他にrspecにautospecというコマンドがあるらしく、こちらを叩いてもOK”だった”らしい。今は以下のようなメッセージが出る。訳は http://d.hatena.ne.jp/smellman/20110310/1299727933:title に記載されています。
************************************************************
REMOVAL NOTICE: you are using behaviour that has been
removed from rspec-2.
* The 'autospec' command is no longer supported.
* Please use 'autotest' insted.
This message will be removed from a future version of rspec.
************************************************************
今後の予定
- 動作原理をもう少し調べる
- rspecにオプションをつけて実行したい
- テスト結果をGrowlで通知したい
[1] ただし、どこかの設定で場所は変えられると書いてあった気がする。