autotestとRSpec
autotest with RSpecはまだ不安定なのかな。3 日坊主日記 - rspec autotestがいつもgreenな件の情報をもとにsvn版をインストールしてみた。
svn checkout http://rspec.rubyforge.org/svn/trunk rspec_trunk cd rspec_trunk/rspec rake package cd pkg sudo gem install rspec-1.1.3.gem
これでautotest with RSpecがきちんと動くようにはなった。
autotest with RSpecはlibを$:に加えないのかな?
しかし、autotest with RSpecはlibを$:に加えないようだ。
autotest with Test::Unitならばautotestの中で↓のようなコマンドを実行するため、libを$:に加えてくれる。
$ /usr/local/bin/ruby -I.:lib:test -rtest/unit -e "%w[test/test_example.rb].each { |f| require f }" | unit_diff -u
だからtest/test_example.rbに「require 'example'」してもきちんとloadされる。
しかし、autotest with RSpecはlibを$:に加えないようだ。
$ /usr/local/bin/ruby -S /usr/local/lib/ruby/gems/1.8/gems/rspec-1.1.3/bin/spec spec/example_spec.rb
だからspec/test_spec.rbに「require 'example'」したら
./spec/example_spec.rb:2:in `require': no such file to load -- example (LoadError)
となってしまう。
当然
$ /usr/local/bin/ruby -Ilib -S /usr/local/lib/ruby/gems/1.8/gems/rspec-1.1.3/bin/spec spec/example_spec.rb
を実行したら、正常にspecを実行してくれる。
仕方ないから.autotestに↓を書いて回避。
Autotest.add_hook :initialize do |at| if defined? Autotest::Rspec def at.ruby "#{super} -Ilib" end end end