2009-12-02 7 views
3

J'ai une application Rails qui utilise le concombre et RSpec. Nous stockons les gemmes sous fournisseur/gemmes et essayons d'obtenir la construction de l'application (en exécutant des tests) dans un serveur CI.Pourquoi mon appli Rails ne trouve-t-elle pas les gemmes qui sont empaquetées avec elle?

Lorsque je tente d'exécuter nos tests que je reçois l'erreur suivante:

Missing these required gems: 
    cucumber >= 0.3.11 
    rspec-rails >= 1.2.6 

Quand je lance RAILS_ENV=test rake gems je reçois le texte suivant:

- [F] activerecord-oracle-adapter 
    - [R] activerecord >= 1.15.5.7843 
- [F] thoughtbot-factory_girl = 1.2.0 
- [F] cucumber >= 0.3.11 
    - [ ] term-ansicolor >= 1.0.3 
    - [ ] treetop >= 1.2.6 
    - [ ] diff-lcs >= 1.1.2 
    - [I] builder >= 2.1.2 
- [F] webrat >= 0.4.4 
    - [I] nokogiri >= 1.2.0 
- [F] rspec >= 1.2.6 
- [F] rspec-rails >= 1.2.6 
    - [F] rspec >= 1.2.7 
    - [ ] rack >= 0.4.0 
- [F] thoughtbot-shoulda >= 2.10.2 

I = Installed 
F = Frozen 
R = Framework (loaded before rails starts) 

Est-ce que le blanc vide [] 's signifie que la gemme est manquant?

config/environnements/test.rb contient les éléments suivants:

config.gem "cucumber",   :lib => false,   :version => ">=0.3.11" unless File.direct 
ory?(File.join(Rails.root, 'vendor/plugins/cucumber')) 
config.gem "webrat",    :lib => false,   :version => ">=0.4.4" unless File.direct 
ory?(File.join(Rails.root, 'vendor/plugins/webrat')) 
config.gem "rspec",    :lib => false,   :version => ">=1.2.6" unless File.direct 
ory?(File.join(Rails.root, 'vendor/plugins/rspec')) 
config.gem "rspec-rails",  :lib => "spec/rails", :version => ">=1.2.6" unless File.direct 
ory?(File.join(Rails.root, 'vendor/plugins/rspec-rails')) 
config.gem "thoughtbot-shoulda", :lib => false,   :version => ">=2.10.2" unless File.direct 
ory?(File.join(Rails.root, 'vendor/plugins/shoulda')) 

Alors tout semble en ordre, mais il refuse toujours de fonctionner.

Est-ce que quelque chose me manque?

+0

[] signifie qu'il manque. Je n'ai pas fait une réponse parce que je ne pouvais trouver aucune erreur. cela m'a aidé parfois, et j'ai décidé d'installer la gemme. Je vais garder mes yeux sur les réponses ;-) –

+0

* ça m'est déjà arrivé avec moi .. –

Répondre

4

Il semble que vous avez cucumber, rspec et rspec-rails congelé (non emballé) dans votre répertoire vendor/gems mais vous êtes pour les dépendances manquantes cucumber et rspec-rails. Comme le dit le commentaire sur la question, [] indique qu'il manque.

Je commencerais sur:

rm -rf vendor/gems/cucumber 
rm -rf vendor/gems/rspec-rails 
rm -rf vendor/gems/rspec 

Ensuite, installez les gemmes localement:

gem install rspec rspec-rails cucumber 

À ce stade, vous devriez être en mesure de tester l'application avec succès.

Enfin, déballer puis dans votre vendor/gems dir si on le souhaite:

RAILS_ENV=test rake gems:unpack:dependencies GEM=rspec-rails 
RAILS_ENV=test rake gems:unpack:dependencies GEM=cucumber 

ou bien:

RAILS_ENV=test rake gems:unpack:dependencies 

à déballer juste pour tout l'environnement de test en vendor/gems. Cela décompresse la gemme nokogiri que vous avez actuellement installée localement mais qui n'est pas figée dans l'application.

Questions connexes