2009-03-19 7 views
2

J'ai suivi un tutoriel RSpec sur l'une de mes machines, dans l'espoir d'en savoir plus sur BDD et TDD. Mon installation était avec Rails 2.2.2 et Rspec 1.1.12Comment exécuter mes spécifications avec la version précédente de Rspec?

Ce soir, j'ai décidé de continuer sur ma machine principale et déplacé mon code de mon portable à mon bureau. N'ayant pas RSpec, j'ai installé la gemme. . .

sudo gem install rspec 
sudo gem install rspec-rails 

Strife et Calumny! La nouvelle version de Rspec installée! 1.2.0! Et maintenant mes tests échouent partout! Bien que j'aie l'intention de suivre et d'apprendre la version la plus à jour, je voudrais vraiment compléter ce qui reste du tutoriel sans avoir à recommencer. Je me demande Y at-il un moyen d'installer et spécifier que je voudrais exécuter mon code contre le précédent Rspec, 1.2.12?

Répondre

3

Vous pouvez désinstaller et réinstaller avec VERSION spécifié. Expliqué here.

+0

Dans mon expérience, c'est à peu près la seule façon de le faire ... rspec a des dépendances qui vont activer la dernière version "active" ou quelque chose de ce genre. Pas 100% sur les internes. Mais la désinstallation va corriger. –

3

Si vous voulez avoir plus d'une version sur votre ordinateur, car si peut-être vous devriez avoir une application 2.2 rails et une application puis dans votre fichier environment.rb 2.3 rails préciser:

config.gem, 'rspec', :lib => 'spec', :version => '1.1.12' 

et votre l'application utilisera cette spécification gem et la gemme rspec-rails qui va avec. Cela vous permettra d'utiliser la gemme appropriée pour chaque application.

2

En plus de spécifier les rspec et les versions rspec-rails dans mon environnement/fichier test.rb, j'ai ajouté script/ devant spec, par exemple:

script/spec spec/controllers/treasury_accounts_controller.rb 

pour dépasser cette erreur:

/opt/ror/ruby-ee-1.8.7-2011-03/lib/ruby/site_ruby/1.8/rubygems.rb:335:in `bin_path': can't find executable spec for rspec-2.1.0 (Gem::Exception) 
    from /opt/ror/ruby/bin/spec:19 
Questions connexes