J'ai hérité d'une vieille application Rails2.3. C'est très complexe et n'a aucun (choc, horreur) aucun test. Comme je suis habitué à rspec et concombre, je pensais commencer à travailler sur les spécifications et fonctionnalités définies pour la mise à jour éventuelle de Rails 3. Il est plus facile de mettre à niveau si je sais exactement ce qui échouera.pas un tel fichier à charger - rspec/matchers - rspec-rails, shoulda, concombre, usine fille, Rails2.3.10
De toute façon, j'ai trouvé très difficile de trouver des ressources sur Internet qui montrent comment configurer rspec, concombre, factory girl, et shoulda dans un environnement rails 2.3. Mon paquet est la suivante:
source "http://rubygems.org"
# Production gems
gem "rails", "2.3.10"
gem "nokogiri", "1.4.4"
gem "mysql", "~> 2.8.1"
group :development do
# bundler requires these gems in development
gem 'rspec', '1.3.2'
gem 'rspec-core', '2.5.2'
gem 'rspec-rails', '1.3.4'
end
group :test do
# bundler requires these gems while running tests
gem 'cucumber-rails', '0.4.1'
gem 'factory_girl'
gem 'shoulda', '2.11.3'
gem 'shoulda-matchers'
end
Quand je vais courir
bundle exec rspec spec,
je reçois le stacktrace suivant de Shoulda:
/Users/sys/src/proj/rails/ruby/1.8/gems/shoulda-2.11.3/lib/shoulda/integrations/rspec2.rb:8: no such file to load -- rspec/matchers (MissingSourceFile)
from /Users/sys/src/proj/vendor/rails/activesupport/lib/active_support/dependencies.rb:184:in `require'
from /Users/sys/src/proj/vendor/rails/activesupport/lib/active_support/dependencies.rb:184:in `require'
from /Users/sys/src/proj/rails/ruby/1.8/gems/shoulda-2.11.3/lib/shoulda.rb:4
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:68:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:68:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:66:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:66:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:55:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:55:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler.rb:120:in `require'
from /Users/sys/src/proj/config/boot.rb:119:in `load_gems'
from /Users/sys/src/proj/config/../vendor/rails/railties/lib/initializer.rb:164:in `process'
from /Users/sys/src/proj/config/../vendor/rails/railties/lib/initializer.rb:113:in `send'
from /Users/sys/src/proj/config/../vendor/rails/railties/lib/initializer.rb:113:in `run'
from /Users/sys/src/proj/config/environment.rb:12
from /Users/sys/src/proj/spec/spec_helper.rb:4:in `require'
from /Users/sys/src/proj/spec/spec_helper.rb:4
from /Users/sys/src/proj/spec/models/announcement_spec.rb:1:in `require'
from /Users/sys/src/proj/spec/models/announcement_spec.rb:1
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in `load'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in `load_spec_files'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in `map'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in `load_spec_files'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/command_line.rb:18:in `run'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:55:in `run_in_process'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:46:in `run'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:10:in `autorun'
from /Users/sys/src/proj/rails/ruby/1.8/bin/rspec:19
recherche sur Google pour cette erreur fournit effroyablement quelques coups .. Je ne suis pas sûr de ce que j'ai fait de mal?
Retrait rspec-core donne:
bundlespec exec rspec/modèles/announcement_spec.rb /Users/sys/.rvm/gems/[email protected]/gems/bundler-1.0 .14 / lib/bundler/rubygems_integration.rb: 143: dans `gem ': rspec-core ne fait pas partie de l'ensemble. Ajoutez-le à Gemfile. (Gem :: ChargeErreur)
contenu opt/local/bin/rspec
cat /opt/local/bin/rspec
#!/usr/bin/env ruby
#
# This file was generated by RubyGems.
#
# The application 'rspec-core' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'rubygems'
version = ">= 0"
if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
version = $1
ARGV.shift
end
gem 'rspec-core', version
load Gem.bin_path('rspec-core', 'rspec', version)
Je me demande si cela est en conflit avec d'autres années rspec J'ai installé (j'ai une application Rails3 installé, aussi avec Bundler/rvm) ... Je ne sais pas pourquoi rspec est en cours d'exécution de opt/local/bin et non de l'ensemble, cependant ..
Si je supprime rspec-core, j'obtiens: /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/rubygems_integration.rb: 143: dans 'gem ': rspec-core ne fait pas partie du bundle. Ajoutez-le à Gemfile. (Gem :: LoadError) \t from /Users/sys/src/proj/rails/ruby/1.8/bin/rspec:18 –
Je vais essayer de désinstaller toutes les gemmes rspec, en mettant seulement les 2 joyaux ci-dessus dans votre Gemfile, et installation du bundle en cours d'exécution. – Mori
Toujours cause des problèmes. Cependant, maintenant il se plaint que le fichier est dans \t de/opt/local/bin/rspec: 18 ... quel est le contenu de votre fichier de ce script? –