this setupを使用してカスタムエンジンを開発しています。私はGuardにファイルの更新が表示されない
rails plugin new MyEngine --full
でエンジンを作成しました
それから私は私のgemspecファイルに
s.add_development_dependency "rspec-rails"
s.add_development_dependency "guard-rspec"
と開発の依存関係としてrspec-rails
とguard-rspec
を追加しました。
rspec
とrake spec
(bundle exec
の有無にかかわらず)を実行すると、仕様が正常に動作します。 guard
コマンドを実行すると、すべての仕様が最初に実行され、何も行われません。それは、アプリケーション全体でファイルの変更を検出しません。 Guardfileがguard init spec
でいつものように生成される
私はガードが動作しているオープン殻を維持し、私はtouch app/my_model.rb
何も起こらない別のシェルから実行する場合は、ここではその内容
# A sample Guardfile
# More info at https://github.com/guard/guard#readme
guard 'rspec', :version => 2 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{^spec/.+_spec\.rb$})
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_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('spec/spec_helper.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" }
end
です。 Guardfileにリストされている他のすべてのファイル(パターン)についても同じです。
このような問題をデバッグする方法はありますか?
更新 私は新しいプロジェクト(レール1)を作成し、私は何も起こりません任意のファイルを編集する場合この場合であっても、このGuardfile
guard 'shell' do
watch(%r{(.*)}) {|m| `cat #{m[0]}` }
watch(%r{(.*)}) {|m| raise m.to_s }
end
でguard-shell宝石をインストールしました。私はこの問題が別の場所にあると思うようになっています。おそらくrb-fsevents
の宝石の中にあります。私は何を確認できますか?
そうです、(デフォルトの)生成ファイルを更新します。しかし、それは問題ではありません。私の質問への編集を参照してください。 – Fabio
ああ、私は... --debugフラグでガードを実行できますが、おそらくそれを試したと思います。 – numbers1311407
うん、私はそれを試して、thx。私はちょうどシステムの再起動で解決しました、[私の答え](http://stackoverflow.com/questions/7311405/guard-doesnt-see-file-updates/7312249#7312249)を見てください。 – Fabio