Почему guard запускает spork как для rspec, так и для cucumber, даже если я хотел запустить его только для RSpec с помощью групп?
в моем Gemfile...
group :development, :test do
gem 'capybara', "1.1.2"
gem 'database_cleaner', "0.7.0"
gem 'cucumber', "1.1.2"
gem 'cucumber-rails', "1.2.0"
gem 'rspec-rails', "2.7.0"
gem 'spork', "0.9.0.rc9"
gem 'launchy' #launches the page
gem 'guard-spork', "0.3.1"
gem 'guard-rspec', "0.5.4"
gem 'guard-cucumber', "0.7.4"
gem 'factory_girl_rails'
end
мой Guardfile имеет две группы (: спецификации и: особенности).
group :specs do
guard :spork, :rspec_env => { 'RAILS_ENV' => 'test' } do
watch('config/application.rb')
watch('config/environment.rb')
watch(%r{^config/environments/.+.rb$})
watch(%r{^config/initializers/.+.rb$})
watch('spec/spec_helper.rb')
end
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
end
group :features do
guard 'spork', :cucumber_env => { 'RAILS_ENV' => 'test' } do
watch('config/application.rb')
watch('config/environment.rb')
watch(%r{^config/environments/.+.rb$})
watch(%r{^config/initializers/.+.rb$})
watch('spec/spec_helper.rb')
end
guard 'cucumber' do
watch(%r{^features/.+.feature$})
watch(%r{^features/support/.+$}) { 'features' }
watch(%r{^features/step_definitions/(.+)_steps.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
end
end
когда я пытаюсь запустить группу: specs, я ожидаю, что guard будет запускать Spork только для Rspec.
guard -g specs start
тем не менее, я вижу на выходе, что guard запускает Spork как для Rspec, так и для Cucumber.
~/current[master]% guard -g specs start
WARNING: You are using Guard outside of Bundler, this is dangerous and may not work. Using `bundle exec guard` is safer.
Guard could not detect any of the supported notification libraries.
Guard is now watching at '/Users/rupert/Desktop/cws-rails'
Starting Spork for RSpec & Cucumber
Using RSpec
Using Cucumber
Preloading Rails environment
Preloading Rails environment
Loading Spork.prefork block...
Loading Spork.prefork block...
Spork is ready and listening on 8990!
Spork is ready and listening on 8989!
Spork server for RSpec & Cucumber successfully started
Guard::RSpec is running, with RSpec 2!
Running all specs
есть ли файл конфигурации для SPORK или guard, который у меня может быть промахнулся?
обновление:
снять защиту-огурец
удалить или переименовать папку функции
2 ответов
вы должны отключить огурец в Спорке в группе RSpec и наоборот:
specs :specs
guard :spork, :cucumber => false do
# ...
end
end
specs :features
guard 'spork', :rspec => false do
# ...
end
end
Я знаю, что это старый, но я также наткнулся на эту проблему прямо сейчас и выяснил:
Я features
подкаталог в моем проекте с одним файлом:
features/step_definitions/email_steps.rb
просматривая коммиты, я понял, что это было добавлено из rails_apps_composer: Testing framework.
так:
удаление поддиректории features
предупреждает spork
использовать огурец.