При желании можно использовать capybara-webkit с RSpec - PullRequest
0 голосов
/ 13 декабря 2011

Я предпочитаю использовать capybara-webkit в качестве драйвера, используемого с capybara, но не ожидайте, что другие разработчики в моей команде перепрыгнут через обруч установки QT, чтобы сделать то же самое.Я хотел бы удалить capybara-webkit из gemfile и использовать его только в качестве тестового драйвера, когда это может потребоваться.Я попытался сделать это с помощью следующего кода в моем файле spec_helper.rb:

begin
  require 'capybara-webkit'
  driver = :webkit
  puts "capybara-webkit has been detected."
rescue LoadError
  driver = :selenium
  puts "capybara-webkit unavailable. Falling back to Selenium"
  puts "For faster, headless integration tests, install capybara-webkit"
end

Capybara.javascript_driver = driver

Проблема в том, что даже при установленном capybara-webkit происходит сбой require.Я могу только предположить, что это потому, что это не входит в комплект моего приложения.Как я могу обойти это?Есть ли способ обойти это, не требующий добавления в Gemfile capybara-webkit?

Ответы [ 3 ]

0 голосов
/ 04 января 2012

Я думаю, вы просто захотите добавить пользовательскую группу в Gemfile и поместить туда capybara-webkit. Затем другие разработчики могут установить пакет, но исключить эту группу.

0 голосов
/ 08 ноября 2013

Мне также нравится использовать оба, в целом, webkit работает быстрее, но иногда мне нравится видеть, как браузер делает что-то (например, когда я не знаю, что происходит, или показывать клиенту), мое решение -установить оба через gemfile и установить это в своем spec_helper.rb

Capybara.javascript_driver = :webkit unless ENV['SHOWJS']

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

SHOWJS=1 rspec spec/features/user/new_spec.rb

Если вы используете guard или что-то еще, вам, возможно, придется экспортировать переменную окружения, потому что я не думаю, что вы можете просто передать ее.

0 голосов
/ 13 декабря 2011

Вместо того, чтобы выполнять проверку по требованию, как насчет проверки другого компонента, который должен быть вместо этого? Что-то за рамками Ruby. Это нужно сделать из-за того, что драгоценный камень недоступен в комплекте.

...