我在几个 Rails 应用程序中遇到了这个问题,但我无法弄清楚共同点是什么,也无法找到关于这个特定问题的任何讨论。
以下是发生的情况:当文件更改时,guard 不会运行规范。但是,如果我在提示符下按 Enter 键,导致它运行所有规范,它将立即为所有更改的文件运行规范。它似乎正在检测变化,因为它应该,但直到我让它做某事之后才对它们采取行动。这让守卫对我来说毫无用处。
显而易见的答案是尝试不同的方法来监控文件更改。例如,我已经阅读了尝试更新或降级listen
gem 的建议。我也尝试过运行 (bundle exec) 守卫,--force-polling
它的行为方式相同。这些在这个应用程序中并没有什么不同。奇怪的是:我在同一台计算机上有一个相关的 rails 应用程序,使用所有相关 gem 的相同版本,以及一个相同的 Guardfile,它可以正常工作!这是 Guardfile (几乎从一些模板修改),供参考。
我在 OS X 10.8.3 上。有问题的应用程序当前使用 Rails 3.2.6、guard 1.2.1、rspec 2.12.0 和 listen 0.6.0。