Я разрабатываю собственный движок, используя эту настройку.
Я создал двигатель с
rails plugin new MyEngine --full
Затем я добавил rspec-rails
и guard-rspec
в качестве зависимостей разработки с помощью
s.add_development_dependency "rspec-rails"
s.add_development_dependency "guard-rspec"
в моем файле gemspec.
Когда я запускаю и rspec
, и rake spec
(с bundle exec
или без него), мои спецификации работают нормально. Однако когда я запускаю команду guard
, она запускает все спецификации в первый раз, а затем ничего не делает. Он не обнаружит никаких изменений файлов во всем приложении.
Guardfile генерируется как обычно с помощью guard init spec
, вот его содержимое
# 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
Если я оставлю оболочку открытой с запущенной защитой и сделаю это из другой оболочки touch app/my_model.rb
, ничего не произойдет. То же самое для любого другого файла (шаблона), указанного в Guardfile.
Есть ли способ отладить такие проблемы?
Обновление Я создал новый проект (rails) и установил guard-shell драгоценный камень с этим Guardfile
guard 'shell' do
watch(%r{(.*)}) {|m| `cat #{m[0]}` }
watch(%r{(.*)}) {|m| raise m.to_s }
end
Даже в этом случае, если я редактирую какие-либо файлы, ничего не происходит. Я начинаю думать, что проблема может быть где-то еще, может быть, в геме rb-fsevents
. Что я могу проверить?