Кто-нибудь придумал, как запустить один и тот же сценарий огурца в нескольких браузерах / веб-драйверах?

Я использую огурец + капибара для некоторого тестирования веб-автоматизации. Я' Мне нравится иметь возможность подключать свой собственный тег (что-то вроде @all_browsers перед сценарием) и запускать его со списком установленных мной веб-драйверов (скорость, селен в firefox, т. е. и хром). Я не хочу писать сценарий 4 раза с 4 разными тегами впереди. Я попытался сделать это с новым драйвером, который я регистрирую через:

Capybara.register_driver :all_browsers do |app|
 # What would even work in here? I don't think anything will.
end  

, а затем следую за ним:

Before('@all_browsers') do
 # Same problem here.
end

Но я не совсем уверен, что добавить в этот метод Before, который может действительно работать.

Я пробовал использовать огуречные крючки, а именно:

Around('@all_browsers') do |scenario, block|
  Capybara.current_driver = :selenium_firefox
  block.call

  Capybara.current_driver = :selenium_chrome
  block.call
  # etc
end

Но это не так, как я ожидал. Он использует тот же драйвер и дважды запускает сценарий с ним.

Следуя строкам хуков, есть следующее из документации по огурцу:
Вы также можете предоставить ловушку AfterConfiguration, которая будет запускаться после того, как Cucumber будет настроен. Этот хук будет запущен только один раз; после загрузки поддержки, но до загрузки функций. Вы можете использовать этот хук для расширения Cucumber, например, вы можете повлиять на то, как загружаются функции ...
Это может быть потенциальный путь для этого, но мне не удалось придумать что-либо, что здесь работает или.

Я изучал пользовательские средства форматирования, но на самом деле они только выглядят так, как будто они делают именно это - форматируют вывод, а не столько определяют, как на самом деле запускаются функции.

Я изучал возможность переопределения средства запуска функций огурца, но сделать это непросто.

Это может быть потенциальный путь для этого, но мне тоже не удалось придумать ничего, что работало бы здесь.

Я изучал пользовательские средства форматирования, но на самом деле они только выглядят так, как будто они делают именно это - форматируют вывод, а не столько определяют, как на самом деле запускаются функции.

Я изучал возможность переопределения средства запуска функций огурца, но сделать это непросто.

Это может быть потенциальный путь для этого, но мне тоже не удалось придумать ничего, что работало бы здесь.

Я изучал пользовательские средства форматирования, но на самом деле они только выглядят так, как будто они делают именно это - форматируют вывод, а не столько определяют, как на самом деле запускаются функции.

Я изучал возможность переопределения средства запуска функций огурца, но сделать это непросто.
Помоги пожалуйста? Кто-нибудь?

10
задан bergyman 8 December 2010 в 21:28
поделиться