有没有办法用guard + guard-rspec强制运行所有规格?

时间:2011-07-30 16:39:47

标签: ruby-on-rails testing rspec guard

是否有类似于autotest的ctrl + c强制运行所有规格?我还在努力调整我的.Guard文件,但暂时可以强行运行所有规格而不重新启动后卫吗? ctrl + c退出警卫。

3 个答案:

答案 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

specspecapp中的任何内容发生更改时,只要您保存,routes.rb文件夹中的任何内容都会运行,并会保存您大量的时间。

使用growl(mac)或libnotify(linux)宝石获取弹出通知。然后你只需在你的编辑器中编码,每次保存后不久你就会得到一个弹出通过/失败通知。如果它是一个通行证你只是继续编码 - 如果它是一个失败你弹出到终端并检查错误是什么。