我正在使用bundle exec guard
它作为我的主要测试运行者,我喜欢它,即使我完全不了解它。
困扰我的事情是我必须手动“r”重新启动它以进行任何真正的代码更改。我对缓慢的重新加载时间感到满意(尽管如果它执行类似rails c
's 的操作会很好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
…
但这显然是一个巨大的组合。仍然比看到假通过的测试滚动要好。
感谢您提供有关使此设置更好的任何建议。