2012-04-19 21 views
6

En mi Gemfile ...¿Por qué guard start spork para rspec y pepino incluso si quisiera iniciarlo solo para rspec usando grupos?

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 

Mi Guardfile tiene dos grupos (: especificaciones y características):.

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 

Cuando trato de ejecutar el grupo: especificaciones, yo esperaría guardia para ejecutar Spork para Rspec solamente.

guard -g specs start 

Sin embargo, puedo ver por la salida que el guardia ejecuta Spork tanto para Rspec como para 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 

¿Hay algún archivo de configuración para SPORK o guardia que me haya pasado por alto?

ACTUALIZACIÓN:

  1. Quitar la guarda-pepino

  2. eliminar o renombrar cuenta con carpeta

Respuesta

6

Debe deshabilitar el pepino en Spork en el grupo RSpec y al revés:

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

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

sé que es antiguo, pero también tropezó con este problema en este momento y dado cuenta:

que tenían un subdirectorio features dentro de mi proyecto con un archivo: features/step_definitions/email_steps.rb

Mirando hacia arriba las confirmaciones me di cuenta que esto fue agregado desde rails_apps_composer: testing framework.

Así:

Extracción del subdirectorio features impide spork de tratar de utilizar el pepino.

Cuestiones relacionadas