私はbundle exec guard
メインのテスト ランナーとして使用しており、それについては完全に無関心ですが、気に入っています。
私を悩ませたのは、実際のコード変更のために手動で「r」を再起動する必要があることです。rails c
リロード時間が遅いのは問題ありませんが (の動作のようになればいいのですreload!
が)、手動でウィンドウに切り替えて を押さなければならないのは我慢できませんr
。特にこれをするのを忘れて、それでいいと思っているとき。したがって、非効率性に加えて矛盾です。
ここに私のガードファイルがあります:
guard 'spork', wait: 45 do
watch 'config/application.rb'
watch 'config/environment.rb'
watch %r{^config/environments/.+\.rb$}
watch %r{^config/initializers/.+\.rb$}
watch 'Gemfile'
watch 'Gemfile.lock'
watch 'spec/spec_helper.rb' do 'spec' end
end
guard 'rspec', version: 2 do
watch %r{^spec/.+_spec\.rb$}
watch %r{^lib/(.+)\.rb$} do |m| "spec/lib/#{m[1]}_spec.rb" end
watch %r{^spec/.+_spec\.rb$}
watch %r{^app/(.+)\.rb$} do |m| "spec/#{m[1]}_spec.rb" end
watch %r{^app/(.*)(\.erb|\.haml)$} do |m| "spec/#{m[1]}#{m[2]}_spec.rb" end
watch %r{^lib/(.+)\.rb$} do |m| "spec/lib/#{m[1]}_spec.rb" end
watch %r{^app/controllers/(.+)_(controller)\.rb$} do |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] end
watch %r{^spec/support/(.+)\.rb$} do 'spec' end
watch 'spec/spec_helper.rb' do "spec" end
watch 'config/routes.rb' do 'spec/routing' end
watch 'app/controllers/application_controller.rb' do 'spec/controllers' end
# Capybara request specs
watch %r{^app/views/(.+)/.*\.(erb|haml)$} do |m| "spec/views/**/#{m[1]}_spec.rb" end
watch %r{^app/.*\.sass$} do 'spec/requests/*' end
end
私は次のようなことを考えました:
watch %r{^app/models/*.rb} do system `killall bundle` end
…
しかし、それは明らかに大したことではありません。それでも、偽って合格したテストがスクロールするのを見るよりはましです。
このセットアップをより良くするためのアドバイスをありがとう。