Селен не работает с огурцом / капибарой (из коробки) - MacOSX - PullRequest
5 голосов
/ 11 февраля 2011

У меня проблемы с попыткой заставить пример огурца работать под селеном.Я бегу

  • Rails3
  • Огурец 0.10.0
  • Капибара 0.4.1.2

Чтение документа на https://github.com/jnicklas/capybara, может показаться, что все, что мне нужно, чтобы получить пример для запуска под селеном, это сделать следующее:

Шаг 1: префикс сценария с @ javascript

@javascript
Scenario: User does x
...

Шаг2: Сконфигурируйте env.rb, чтобы сообщить капибаре, какой драйвер использовать:

Capybara.javascript_driver = :selenium

Когда я запускаю:

bundle exec cucumber feature/myfeature.feature

, я получаю следующее:

Using the default profile...
F------------F

Failing Scenarios:
cucumber features/myfeature.feature:7 # Scenario: User does x

1 scenario (1 failed)
12 steps (12 skipped)
0m0.012s

Нет окна Firefox.Ничего такого.Он запускается, зависает и умирает.

Чтобы проверить, работает ли капибара и селеновый веб-драйвер, я написал следующий код:

require 'capybara'
require 'capybara/dsl'

Capybara.default_driver = :selenium

class Test
   include Capybara
   def dotest
     visit('http://www.stackoverflow.com')
   end
end

Test.new.dotest

и запустил его с помощью:

bundle exec ruby /tmp/test.rb

Это работает.Firefox открывает окно и переходит на сайт www.stackoverflow.com.

Так как мне получить диагностическую информацию, чтобы понять, что делает огурец с капибарой?

Я использую OSX10., Ruby 1.8.7 и Firefox 3.6.13.

Ответы [ 2 ]

7 голосов
/ 15 февраля 2011

Хорошо ... Я выяснил свою проблему.Где-то в чашах огурца находится зависимость от DatabaseCleaner, которая срабатывает один раз, когда вы используете драйвер селена.Заявление об ошибке:

F______________F

Сказал мне, что сбой произошел в настройке и демонтаже.Огурец не сообщил об исключении, и даже с параметром -b он ничего не сделал.

Как я нашел проблему:

  1. Добавьте ruby-debug в качестве зависимости от гема

  2. Добавьте в env требование "ruby-debug"..rb:

Before do
    breakpoint; 0
end
  1. Запустите функцию с помощью bundle exec.Включен отладчик.

  2. Введите cat StandardError , который сообщит отладчику точку останова при возникновении «StandardError».StandardError - это базовый класс для всех ошибок в Cucumber.Что мы хотим сделать, это выяснить, где выдается ошибка и почему.

  3. Введите cont , чтобы сообщить отладчику возобновить

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

0 голосов
/ 14 февраля 2011

Вы пробовали

bundle exec cucumber feature/myfeature.feature

!!

...