Настройка Capybara для Rails 2.3 и Rspec - PullRequest
4 голосов
/ 20 апреля 2011

У меня проблемы с настройкой капибары (0.4.1.2) в приложении rails 2.3.8 с Rspec 1.3. Из инструкции по установке капибары я вставил строку:

require 'capybara/rspec' 

Однако это дает мне отсутствующую постоянную ошибку. Похоже, он ищет класс «RSpec», который не загружен (я предполагаю, что это RSpec 2 / Rails 3).

Так как же заставить Rspec распознавать капибару под рельсами 2.3? Должен ли я использовать более раннюю версию capy?

PS. Вот фрагмент следа:

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|443| in `load_missing_constant': uninitialized constant RSpec (NameError)

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|80| in `const_missing_not_from_s3_library'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb|206| in `const_missing'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|92| in `const_missing'

||  from /Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/capybara-0.4.1.2/lib/capybara/rspec.rb:4


/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/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/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|443| in `load_missing_constant': uninitialized constant RSpec (NameError)

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|80| in `const_missing_not_from_s3_library'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb|206| in `const_missing'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|92| in `const_missing'

|   from /Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/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/ruby-1.8.6-p399@lci/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

Ответы [ 3 ]

5 голосов
/ 06 июня 2011

Capybara не имеет встроенной поддержки RSpec 1.x.Однако вы можете использовать Steak вместо поддержки собственной поддержки RSpec.

5 голосов
/ 23 июля 2012

кажется, что стейк на самом деле не нужен, если, скажем, вы просто хотите «запросить спецификации» (как определено в «как я тестирую» Railscasts).См. Также: Что Steak добавляет помимо использования Capybara и RSpec в тестировании Rails?

Я только что установил rails 2.3 + rspec 1 + capybara (последняя версия) здесь и там былНет никаких хлопот

, которых у вас не может быть require capybara/rspec, но, похоже, все, что он делает, - это добавляет несколько соответствий ... но на самом деле важна капибара и ее DSL и проверяющие вещи

Capybara работает с любым стоечным приложением

на моем spec_helper.rb:

require 'capybara/rails'
include Capybara::DSL

и все (просто нажмите на документы по Capybara и это DSL, потому что некоторые rspec-могут быть пропущены соответствия Капибара, ничего, что могло бы блокировать, хотя)

3 голосов
/ 04 мая 2011

Из документа Капибара,

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.

...