Как использовать Capybara в чистого рубина (без рельсов)?

StackOverflow https://stackoverflow.com/questions/3484169

  •  28-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь получить Capybara, бегаю в простом рубинге - то есть без / снаружи рельсов. Вот сценарий:

require 'rubygems'
require 'capybara'
require 'capybara/dsl'

include Capybara

Capybara.current_driver = :selenium
Capybara.app_host = 'http://www.google.com'

visit('/')

Проблема в том, что когда я запускаю это, я получаю эту ошибку:

NameError: uninitialized constant Capybara::Session

at top level    in dsl.rb at line 52
method gem_original_require in custom_require.rb at line 36
method require  in custom_require.rb at line 36
at top level    in capybara_test.rb at line 3
method gem_original_require in custom_require.rb at line 31
method require  in custom_require.rb at line 31
at top level    in capybara_test.rb at line 

Что я делаю не так?

Еще одна информация:

  • Mac OS X 10.5
  • Ruby 1.8.6 (2009-06-08 PATCHLEVEL 369) [Universal-Darwin9.0
  • Capybara (0.3.9)

Спасибо!

Нил

Примечание: на комментарий от jnicklas я попробовал это, что соответствует новому Readme более внимательно:

require 'rubygems'
require 'capybara'
require 'capybara/dsl'

Capybara.default_driver = :selenium
Capybara.app_host = 'http://www.google.com'

module MyCapybaraTest
  include Capybara

  def test_google
    visit('/')
  end
end

К сожалению, я все еще вижу ту же ошибку:

NameError: uninitialized constant Capybara::Session

Мысли?

Спасибо!

Это было полезно?

Решение

Вот что-то, что кажется для меня:

require 'rubygems'
require 'capybara'
require 'capybara/dsl'

Capybara.run_server = false
Capybara.current_driver = :selenium
Capybara.app_host = 'http://www.google.com'

module MyCapybaraTest
  class Test
    include Capybara::DSL
    def test_google
      visit('/')
    end
  end
end

t = MyCapybaraTest::Test.new
t.test_google

Другие советы

Он идет, чтобы показать, что даже неверная документация живет навсегда. Capybara Readme, используемый для рекомендации включить Capybara в глобальном пространстве имен, это В самом деле Плохая идея и испортивает любое количество случайных вещей. Вы должны включить Capybara в свой собственный модуль или класс и использовать это вместо этого.

Проверьте readme для текущих лучших практик.

Пожалуйста, проверьте это CapyBararsPec101. Пример и вилка это.

Это небольшой пример для принятия тестов на http://www.hi5.com. Используя с нуля:

  • Водосвинка
  • Rspec.
  • Селен-Вебъектор

Все инструкции в репо

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top