2010-03-19 4 views
3

environnement/cucumber.rb:concombre ne peut pas trouver des pierres précieuses installé

... 
# gem dependencies 
config.gem 'cucumber-rails', :lib => false, :version => '>=0.3.0' unless File.directory?(File.join(Rails.root, 'vend 
config.gem 'database_cleaner', :lib => false, :version => '>=0.5.0' unless File.directory?(File.join(Rails.root, 'vend 
config.gem 'webrat',   :lib => false, :version => '>=0.7.0' unless File.directory?(File.join(Rails.root, 'vend 

config.gem 'spork',   :lib => false, :version => '>=0.7.5' unless File.directory?(File.join(Rails.root, 'vend 

config.gem 'factory_girl', :source => 'http://gemcutter.org' 
config.gem 'selenium-client', :lib => false 
config.gem 'Selenium', :lib => false 
config.gem 'rspec', :lib => 'spec' 
config.gem 'rspec-rails', :lib => 'spec/rails' 
config.gem 'test-unit', :lib => false 

concombre donne l'erreur de marche gemmes manquant:

artem:~/projects/food4feed (master)$ cucumber 
... 
no such file to load -- Selenium 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/polyglot-0.3.0/lib/polyglot.rb:65:in `require' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:158:in `require' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/rspec-rails-1.3.2/lib/spec/rails.rb:13:in `<top (required)>' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/polyglot-0.3.0/lib/polyglot.rb:65:in `require' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/polyglot-0.3.0/lib/polyglot.rb:65:in `require' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:158:in `require' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/rails-2.3.5/lib/rails/gem_dependency.rb:208:in `load' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/rails-2.3.5/lib/initializer.rb:307:in `block in load_gems' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/rails-2.3.5/lib/initializer.rb:307:in `each' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/rails-2.3.5/lib/initializer.rb:307:in `load_gems' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/rails-2.3.5/lib/initializer.rb:169:in `process' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/rails-2.3.5/lib/initializer.rb:113:in `run' 
/home/artem/projects/food4feed/config/environment.rb:9:in `<top (required)>' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/polyglot-0.3.0/lib/polyglot.rb:65:in `require' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/polyglot-0.3.0/lib/polyglot.rb:65:in `require' 
/home/artem/projects/food4feed/features/support/env.rb:12:in `block in <top (required)>' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/spork-0.8.1/lib/spork.rb:23:in `prefork' 
/home/artem/projects/food4feed/features/support/env.rb:10:in `<top (required)>' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/polyglot-0.3.0/lib/polyglot.rb:65:in `require' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/polyglot-0.3.0/lib/polyglot.rb:65:in `require' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/cucumber-0.6.3/lib/cucumber/rb_support/rb_language.rb:124:in `load_code_file' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/cucumber-0.6.3/lib/cucumber/step_mother.rb:85:in `load_code_file' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/cucumber-0.6.3/lib/cucumber/step_mother.rb:77:in `block in load_code_files' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/cucumber-0.6.3/lib/cucumber/step_mother.rb:76:in `each' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/cucumber-0.6.3/lib/cucumber/step_mother.rb:76:in `load_code_files' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/cucumber-0.6.3/lib/cucumber/cli/main.rb:48:in `execute!' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/cucumber-0.6.3/lib/cucumber/cli/main.rb:20:in `execute' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/gems/cucumber-0.6.3/bin/cucumber:8:in `<top (required)>' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/bin/cucumber:19:in `load' 
/home/artem/.rvm/gems/ruby-1.9.1-p378/bin/cucumber:19:in `<main>' 
Missing these required gems: 
    selenium-client 
    Selenium 
    rspec-rails 

You're running: 
    ruby 1.9.1.378 at /home/artem/.rvm/rubies/ruby-1.9.1-p378/bin/ruby 
    rubygems 1.3.5 at /home/artem/.rvm/gems/ruby-1.9.1-p378, /home/artem/.rvm/gems/ruby-1.9.1-p378%global 

Toutes les pierres précieuses sont évidemment là:

artem:~/projects/food4feed (master)$ gem list | egrep "elenium|rspec|test-unit" 
rspec (1.3.0) 
rspec-rails (1.3.2) 
Selenium (1.1.14) 
selenium-client (1.2.18) 
test-unit (2.0.7) 

Une partie encore plus déroutante est qu'elle ne se plaint que de certaines pierres précieuses. factory_girl et ne provoquent pas rspec problèmes.

Une idée de ce qui se passe?


Mon environnement:

  • Rails 2.3.5
  • concombre (0.6.3)
  • rails de concombre (0.3.0)

Répondre

2

Ok, je me suis dit (avec l'aide de aslakhellesoy, merci!). Lorsque le concombre a dit Missing these required gems il peut aussi signifier Can't load these required gems. Ce qui ajoute tout le spectre des erreurs possibles.

Dans ce cas, les noms de pierres précieuses (à l'exception de rspec-rails) ne correspondait pas à des fichiers de bibliothèque correspondant à exiger. Par exemple, il aurait été ajouté à :lib => 'selenium'config.gem 'selenium-client'.

En ce qui concerne rspec-rails, il a échoué à charger en raison de la mauvaise version de l'unité de test: Gem::LoadError: RubyGem version error: test-unit(2.0.7 not = 1.2.3). Il aurait beaucoup aidé si le concombre a signalé cette erreur en premier lieu (je l'ai d'exiger rspec-rails de la console).

1

Avez-vous besoin d'avoir 'test-unit' quelque part dans votre fichier config/environment.rb ou features/support/env.rb?

Si vous le faites, cela est faux. La gemme de l'unité de test n'a pas de fichier test-unit.rb, donc l'exigence 'test-unit' échouera toujours. Essayez de supprimer la ligne require, ou au moins essayer d'exiger le fichier correct:

require « test/unit »

Je ne sais pas pourquoi que vous essayez de charger explicitement l'appareil à tester de toute façon.

+0

'test-unit' est une dépendance à l'une des perles ci-dessus. Il est là seulement pour 'rake gems: installez RAILS_ENV = concombre' pour l'installer. – artemave

+0

CORRECTION !! CORRECTION!! 'test-unit' ne cause pas réellement de problèmes, puisqu'il est': lib => false'. Ma faute, je pense que j'ai copié la mauvaise trace de la pile en premier lieu (corrigé). Cependant, cela ne change pas la question. – artemave

+0

Vous avez effectivement indiqué la bonne direction. En dehors de rspec-rails, il était tout au sujet de non-concordance de nom gem/bibliothèque. Merci! – artemave

Questions connexes