我正在使用bundle exec guard
作为我的主要测试跑者,我喜欢它,即使我总是关于它的n00b。
让我困扰的是我必须手动'r'重新启动它以进行任何真正的代码更改。缓慢的重载时间我很好(虽然如果像rails c
reload!
那样做的话会很好),但我不能忍受的是不得不切换到手动窗口并点击r
。特别是当我忘记这样做的时候,并认为这一切都很好。因此,除了低效率之外,这是不一致的。
这是我的Guardfile:
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
…
但这显然是一个巨大的障碍。仍然比看到虚假传球测试滚动更好。
感谢您提供有关改善此设置的任何建议。
答案 0 :(得分:0)
这是我的“第1天”编辑(也就是说,上面的那个是我在尝试时摸索 以尽可能少的学习来实现它,但这一点有点 更明智的)。这个对我来说效果更好。
notification :on
guard 'spork', wait: 45, rspec_env: { 'RAILS_ENV' => 'test' } do
[
%r{^config/(environments|initializers)/.+\.rb$},
%r{^config/(application|environment|routes)\.rb$},
%r{Gemfile(.lock)?},
%r{^lib/},
%r{app/(models|controllers)},
'spec/spec_helper.rb'
].each do |e| watch e end
end
guard 'rspec', version: 2 do
watch %r{^spec/.+_spec\.rb$}
watch %r{^app/(.+)\.rb$} do |m| "spec/#{m[1]}_spec.rb" end
watch %r{^lib/(.+)\.rb$} do |m| "spec/lib/#{m[1]}_spec.rb" end
watch %r{^app/(.*)(\.erb|\.haml)$} do |m| "spec/#{m[1]}#{m[2]}_spec.rb" end
watch %r{^app/views/(.+)/.*\.(erb|haml)$} do |m| "spec/views/**/#{m[1]}_spec.rb" end
watch %r{^app/.*\.sass$} do 'spec/requests/*' end
end
工作正常。我敢打赌会有更多改进。 -☈