是否有类似于autotest的ctrl + c强制运行所有规格?我还在努力调整我的.Guard文件,但暂时可以强行运行所有规格而不重新启动后卫吗? ctrl + c退出警卫。
答案 0 :(得分:26)
马克建议的posix信号不再用于与守卫互动。有关新的互动方式,请参阅README中标题为“互动”的部分。
要触发每个守卫的run_all
方法,只需在守卫终端点击Enter即可。要触发rspec的run_all
方法,请键入rspec
并按Enter键。
答案 1 :(得分:17)
https://github.com/guard/guard#interactions
当Guard无事可做时,您可以与Guard交互并输入命令。 Guard了解以下命令:
↩: Run all Guards.
h, help: Show a help of the available interactor commands.
r, reload: Reload all Guards.
n, notification: Toggle system notifications on and off.
p, pause: Toggles the file modification listener. The prompt will change to p> when paused. This is useful when switching Git branches, rebase Git or change whitespace.
e, exit: Stop all Guards and quit Guard.
所以,基本上你进入Guard正在运行的终端并按下Enter / return。
答案 2 :(得分:4)
最简单的事情可能是use Spork,然后简化你的Guardfile:
# Guardfile
guard 'rspec', :version => 2, :cli => '--drb' do # :cli => is important!
watch(%r{^spec/}) { "spec" }
watch(%r{^app/}) { "spec" }
watch('config/routes.rb') { "spec" }
end
当spec
,spec
或app
中的任何内容发生更改时,只要您保存,routes.rb
文件夹中的任何内容都会运行,并会保存您大量的时间。
使用growl
(mac)或libnotify
(linux)宝石获取弹出通知。然后你只需在你的编辑器中编码,每次保存后不久你就会得到一个弹出通过/失败通知。如果它是一个通行证你只是继续编码 - 如果它是一个失败你弹出到终端并检查错误是什么。