2012-04-19 11 views
6

W moim Gemfile ...Dlaczego strażnik zaczyna szpiegować zarówno dla rspec, jak i ogórka, nawet jeśli chcę go uruchomić tylko dla rspec, używając grup?

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 

My Guardfile mają dwie grupy (: specyfikacje oraz: wyposażenie).

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 

Kiedy próbuję uruchomić grupę: specs, spodziewam się, że strażnik uruchomi Spork tylko dla Rspec.

guard -g specs start 

Widzę jednak, że strażnik wykonuje Spork zarówno dla Rspec, jak i 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 

Czy istnieje plik konfiguracyjny dla SPORK lub strażnika, którego mógłbym pominąć?

UPDATE:

  1. Usuń Guard ogórek

  2. Usuń lub Zmień nazwę wyposażony folderowi

Odpowiedz

6

Musisz wyłączyć Ogórek w Spork w grupie RSpec i na odwrót:

specs :specs  
    guard :spork, :cucumber => false do 
    # ... 
    end 
end 

specs :features  
    guard 'spork', :rspec => false do 
    # ... 
    end 
end 
0

Wiem, że to stary, ale również potknął się tym problemem już teraz i zorientowaliśmy się:

miałem podkatalogu features w moim projekcie z jednego pliku: features/step_definitions/email_steps.rb

Patrząc na zobowiązuje uświadomiłem sobie, że to zostało dodane z rails_apps_composer: framework testujący.

Więc:

Usunięcie podkatalogu features zapobiega spork z próby użycia ogórka.

Powiązane problemy