ページ

2011年9月25日日曜日

autotestとRSpecを使う

色々見たけどgithub見るのが一番早かった
https://github.com/rspec/rspec/wiki/autotest

まずはRSpecとZenTestをインストールする。
% gem install rspec
% gem install ZenTest
~/.rspecに書いたRSpecの設定はこんなん。
# /.rspec
--format nested
--color
ファイル保存のタイミングでテストを実行してくれるようにautotest-fseventを、
テスト結果をgrowlで通知してくれるようにautotest-growlを入れる。

% gem install autotest-fsevent autotest-growl
~/.autotestを作って、以下を書く。
# Include plugins
require 'autotest/fsevent'
require 'autotest/growl'

# Skip some paths
Autotest.add_hook :initialize do |autotest|
%w{.git .DS_Store ._* vendor}.each { |exception| autotest.add_exception(exception) }
false
end
プロジェクト毎の設定はプロジェクトのrootに./.autotestを作る。

# ./.autotest
Autotest.add_hook(:initialize) {|at|
at.add_exception %r{^\.git} # ignore Version Control System
at.add_exception %r{^./tmp} # ignore temp files, lest autotest will run again, and again...
# at.clear_mappings # take out the default (test/test*rb)
at.add_mapping(%r{^lib/.*\.rb$}) {|f, _|
Dir['spec/**/*_spec.rb']
}
nil
}

大体の設定は以上。

そして実際に使う。

ディレクトリ構造はこんな感じに。
テストファイルをspec下、テスト対象をlib下に置く。
hoge/
|-- autotest/
|    `-- discover.rb
|-- lib/
|    `-- hoge.rb
`-- spec/
     `-- hoge_spec.rb

discover.rbには、rspec2を使う的なことを書いておく。
#./autotest/discover.rb

Autotest.add_discovery { "rspec2" }

あとは心の赴くままにテスト駆動すればいい。

0 件のコメント:

コメントを投稿