2012-04-19 14 views
6

在我的Gemfile ...爲什麼警衛會爲rspec和黃瓜啓動spork,即使我只是爲了rspec使用組而啓動它?

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 for Rspec。

guard -g specs start 

但是,我可以從輸出中看到,後衛爲Rspec和黃瓜運行Spork。

~/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或警衛的配置文件,我可能錯過了?

UPDATE:

  1. 取下護罩黃瓜

  2. 刪除或重命名功能文件夾

回答

6

必須在RSpec的組和周圍的其他方式叉勺禁用黃瓜:

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

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

我知道這是老了,但我也絆了這個問題,現在和想通了:

我有我的項目中的features子目錄一個文件: features/step_definitions/email_steps.rb

我擡頭一意識到提交這是從rails_apps_composer:測試框架添加的。

所以:

刪除子目錄features防止spork試圖使用黃瓜。

相關問題