Бамбук + огурец + драйвер Webkit

У меня большие проблемы с запуском тестов cuke, в которых используется драйвер capybara-webkit. Поскольку это безголовый сервер, я пытаюсь запустить xvfb-run для запуска тестов, но продолжаю натыкаться на контрольно-пропускные пункты.

Если я попытаюсь запустить

xvfb-run rake cucumber:all

то я получаю сообщение об ошибке с моего сервера, что грабли не существуют. (Хотя это так)

Если я попытаюсь запустить его через пакет exec

xvfb-run bundle exec rake cucumber:all

затем я получаю сообщение об ошибке, говорящее, что пакет не существует!

Обе команды ДЕЙСТВИТЕЛЬНО работают из ssh на сервер, но только при входе из Bamboo они не работают. Я пробовал как задачу Rake, так и просто создание сценария для запуска исполняемого пакета, но нада.

Мне интересно, есть ли у кого-нибудь еще эта настройка, и могут ли они рассказать мне, как они настроили ее в бамбуке... Это довольно типичный проект рельсов, и это мой ПОСЛЕДНИЙ этап, прежде чем я смогу настроить свою CI. и работает.

Спасибо!


person Dave Sanders    schedule 08.10.2012    source источник
comment
Нынче мне нравятся названия технологий: огурец, рубин-на-рельсах,...   -  person Sidharth Mudgal    schedule 09.10.2012
comment
хех, лучше алфавитного супа из акронима. :)   -  person Dave Sanders    schedule 09.10.2012


Ответы (2)


Я думаю, что понял это на основе этой страницы, которую я нашел здесь, которая была посвящена использованию Дженкинса. http://sermoa.wordpress.com/2011/07/02/cucumber-running-headless-selenium-with-jenkins-the-easy-way/

Основная идея состоит в том, чтобы использовать гем «без головы», а затем поместить этот раздел в ваш env.rb для огурца:

if ENV['HEADLESS'] == 'true'
  require 'headless'

  headless = Headless.new
  headless.start

  at_exit do
    headless.destroy
  end
end

Затем запустите обычную задачу rake в bamboo с переменной окружения "HEADLESS=true".

На сервере также должен быть установлен xvfb. (sudo apt-получить установку xvfb)

person Dave Sanders    schedule 09.10.2012

Вот рабочая обновленная версия, которая настроит capybara-webkit и headless для огурца, используя хуки до/после. Просто включите это в свой файл поддержки/env.rb или другой файл поддержки (я использовал support/javascript.rb, потому что есть несколько связанных вещей, которые я делаю):

Capybara.javascript_driver = :webkit

Before do
  # run capybara-webkit headless if not on mac and this test is selenium based.
  if Capybara.current_driver == :selenium
    require 'headless'
    @headless = Headless.new
    @headless.start
  end
end

After do
  @headless.destroy
end

РЕДАКТИРОВАТЬ: Вот суть с некоторыми пометками, где вы можете использовать: chrome в локальном режиме разработки, если хотите, при этом убедитесь, что среда CI остается безголовой:

https://gist.github.com/rosskevin/5937888

person kross    schedule 05.07.2013