2010-12-02 4 views
11

J'ai mis à jour mes gemmes. J'ai créé un échantillon Rails application et ont les éléments suivants dans mon Gemfile:Essayer d'utiliser rspec, mais obtenir une erreur que rspec-core 2.2.1 a été activé, mais mon Gemfile nécessite rspec-core 2.1.0

source 'http://rubygems.org' 

gem 'rails', '3.0.3' 
gem 'sqlite3-ruby', :require => 'sqlite3' 

group :development do 
    gem 'rspec-rails' 
end 

group :test do 
    gem 'rspec' 
    gem 'webrat', '0.7.1' 
end 

Cependant, quand je lance 'spec rspec /', je reçois le message suivant:

/home/jeff/.rvm/gems/ruby-1.9.2-p0/gems/bundler-1.0.7/lib/bundler/runtime.rb:27:in `block in setup': 
You have already activated rspec-core 2.2.1, but your Gemfile requires rspec-core 2.1.0. 
Consider using bundle exec. (Gem::LoadError) 

Répondre

9

essayez d'utiliser bundle update rspec et bundle update rspec-rails. votre fichier Gemfile.lock, situé dans le répertoire racine, indique probablement un numéro de version pour chaque gemme.

0

Rails Noob ici ... Je suis tutoriel brillant Michael Hartl ... coincé à layouts

essayé de changer rspec & Webrat versions comme mentionné dans this post about rspec/webrat errors en vain.

Pour rspec v2.1.0, j'obtiens la même erreur que @ user338413.

rspec -v retourne 2.2.1


machine dev ubuntu en cours d'exécution 10,04

résolu .... travaille avec rspec 2.2.0 + Webrat 0.7.1, bien que je voudrais encore savoir pourquoi

2

J'ai le même problème en ce moment. pour le fixer à essayer:

sudo gem uninstall rspec-core -v 2.2.1 
bundle update rspec-core 

Vous devrez peut-être de le faire pour d'autres pierres précieuses dépendantes (comme rspec, rspec-rails, etc.). Utilisez la commande pour voir les candidats:

gem list rspec 
+0

Ceci l'a corrigé. Le problème pour moi était que j'avais installé rspec deux fois en tant que gemmes locales - une fois sans spécifier de numéro de version, et une fois en spécifiant un numéro de version. Rspec installé avec un numéro de version était inférieur à celui installé sans numéro de version, et il essayait de charger la gemme rspec-support avec un numéro de version plus élevé que nécessaire. TL; DR: supprimer les gemmes en double - lancez gem list rspec pour voir lesquelles sont des doublons, puis supprimez ces versions. – Tebbers

7

Une combinaison des solutions de Sam Ritchie et Alexey m'a aidé ici. En fin de compte, je devais:

bundle update rspec 
bundle update rspec-rails 
sudo gem uninstall rspec-mocks 
sudo gem uninstall rspec-expectations 
sudo gem uninstall rspec-core 

(invites pour les versions si aucune sont entrées)

Comme le dit Alexey, utilisez cette option pour voir quelles versions sont trop élevées:

gem list rspec 

(Would voter pour vous Alexey, mais apparemment je n'ai pas assez d'une « réputation » sur la pile)

0

Ceci est facilement résolu.

bundle exec rspec 

obligera bundler à utiliser la version gem dont vous avez besoin pour votre projet, en ignorant les paramètres à l'échelle du système.

0

Modifier le numéro de version de 2.1.0 à 2.2.1 dans Gemfile.lock

Questions connexes