1

我非常困惑..(也很沮丧..)

出于某种原因,guard 没有检测 osx 上的文件更新,而只是检测某些文件。这几乎就像 watch 函数中定义的正则表达式不起作用或什么的..

我已经创建了一个全新的 Rails 应用程序,用于在 Ryans 防护 railscast 之后摆弄——http ://railscasts.com/episodes/264-guard

并具有生成的默认保护文件;

guard init spec

看起来像这样;

# A sample Guardfile
# More info at https://github.com/guard/guard#readme

guard 'rspec', :cli => "--color --format nested --fail-fast" do
  watch(%r{^spec/.+_spec\.rb$})
  watch(%r{^lib/(.+)\.rb$})     { |m| "spec/lib/#{m[1]}_spec.rb" }
  watch('spec/spec_helper.rb')  { "spec" }

  # Rails example
  watch(%r{^app/(.+)\.rb$})                           { |m| "spec/#{m[1]}_spec.rb" }
  watch(%r{^app/(.*)(\.erb|\.haml)$})                 { |m| "spec/#{m[1]}#    {m[2]}_spec.rb" }
  watch(%r{^app/controllers/(.+)_(controller)\.rb$})  { |m| ["spec/routing/#    {m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#    {m[1]}_spec.rb"] }
  watch(%r{^spec/support/(.+)\.rb$})                  { "spec" }
  watch('config/routes.rb')                           { "spec/routing" }
  watch('app/controllers/application_controller.rb')  { "spec/controllers" }

  # Capybara request specs
  watch(%r{^app/views/(.+)/.*\.(erb|haml)$})          { |m| "spec/requests/#{m[1]}_spec.rb" }

  # Turnip features and steps
  watch(%r{^spec/acceptance/(.+)\.feature$})
  watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$})   { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
end

如果我在规范目录中编辑 application_controller.rb 或规范文件,守卫将自动运行就好了。

但是,如果我编辑并保存任何其他控制器,则什么也不会发生。

我两者都跑后卫guardbundle exec guard没有区别;它只运行一次完整的套件,然后在提示时坐在那里。

macbook pro 操作系统 v10.6.8。
带有 Ruby-1.9.3-p286 和 Rails 3.2.8 rb-fsevent 0.9.2 的 RVM

我的一位同事正在运行具有相同系统规格(公司发行的 mbp)直接从 git 中提取的完全相同的东西,并且它适用于他。

当他编辑app/home_controller.rb并只给它额外的一行或其他东西时,点击保存..测试触发。

当我编辑文件并点击保存时,没有任何反应,但如果我编辑app/application_controller.rb它会触发..

我很困惑..我很沮丧..我需要帮助,因为我不知所措..

想法?

4

1 回答 1

2

它看起来像rb-fsevent和 OS X 10.6 的问题。您可以通过在您的喜欢rb-fsevent中设置一个固定版本来尝试旧版本是否可以工作Gemfile

gem 'rb-fsevent', '0.9.0'

或者您可以通过切换到轮询来解决此问题:

bundle exec guard --force-polling

于 2012-11-01T08:51:30.287 回答