2011-04-20 3 views
4

Je rencontre des problèmes pour configurer capybara (0.4.1.2) dans un rail 2.3.8 application avec Rspec 1.3 Depuis les instructions d'installation capybara, j'ai inséré la ligne:Mise en place de Capybara pour Rails 2.3 et Rspec

require 'capybara/rspec' 

Cependant cela me donne une erreur constante manquante. On dirait qu'il cherche une classe 'RSpec' qui n'est pas chargée (je suppose que c'est une chose RSpec 2/Rails 3).

Alors, comment obtenir Rspec pour reconnaître capybara sous les rails 2.3? Dois-je utiliser une version antérieure de capy?

PS. Voici un extrait de la rétrospection:

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|443| in `load_missing_constant': uninitialized constant RSpec (NameError) 

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|80| in `const_missing_not_from_s3_library' 

/Users/rafe/.rvm/gems/[email protected]/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb|206| in `const_missing' 

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|92| in `const_missing' 

|| from /Users/rafe/.rvm/gems/[email protected]/gems/capybara-0.4.1.2/lib/capybara/rspec.rb:4 


/Users/rafe/.rvm/gems/[email protected]/gems/rails-2.3.5/lib/rails/gem_dependency.rb|119| Warning: Gem::Dependency#version_requirements is deprecated and will be removed on or after August 2010. Use #requirement 

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|443| in `load_missing_constant': uninitialized constant RSpec (NameError) 

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|80| in `const_missing_not_from_s3_library' 

/Users/rafe/.rvm/gems/[email protected]/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb|206| in `const_missing' 

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|92| in `const_missing' 

| from /Users/rafe/.rvm/gems/[email protected]/gems/capybara-0.4.1.2/lib/capybara/rspec.rb:4 

/Users/rafe/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb|31| in `gem_original_require' 

/Users/rafe/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb|31| in `require' 

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|158| in `require' 

|| from /Users/rafe/cmi/lci/branches/forums/spec/spec_helper.rb:12 

Répondre

5

Capybara n'a pas construit à l'appui pour RSpec 1.x. Cependant, vous pouvez utiliser Steak au lieu de lancer votre propre support RSpec.

3

De la doc Capybara,

Note that Capybara’s built in RSpec support only works with RSpec 2.0 or later. You’ll need to roll your own for earlier versions of RSpec.

5

il semble steak n'est pas vraiment nécessaire si, disons, vous voulez juste faire 'demande specs' (tel que défini dans "comment je teste" railscasts). Voir aussi: What does Steak add beyond just using Capybara and RSpec in Rails testing?

Je viens mis en place des rails 2.3 + 1 + rspec capybara (dernière version) ici et il n'y avait pas de tracas

vous ne pouvez pas avoir require capybara/rspec, mais il semble tout ce qu'il n'est d'ajouter quelques matchers ... mais ce qui importe est vraiment capybara et ses trucs DSL et la validation

Capybara fonctionne avec toute application rack

sur mon spec_helper.rb:

require 'capybara/rails' 
include Capybara::DSL 

et c'est tout (vient de frapper la documentation pour Capybara et il est DSL parce que certains matchers rspec-capybara peut manquer, rien qui serait le blocage, tho)

+0

Je reçois cette erreur: uninitialized Capybara constante :: DSL (NameError) – RAJ

+1

Je suggère de faire un peu de débogage sur votre spec_helper.rb ... Je pense qu'il pourrait être parce que nous utilisons déjà bundler sur ce projet rails 2.3, Bundler pourrait donc avoir besoin de capybara automatiquement pour moi ... regarder Capybara doc et voir quel fichier nécessite capybara/dsl, peut-être 'exiger 'capybara'' au-dessus de spec_helper.rb wil Je fais l'affaire –

+1

cela a fonctionné magnifiquement pour moi, merci –

Questions connexes