2013-04-04 4 views
0

У меня проблемы с параллельными сборками, которые требуют сервера xvfb. Раньше я использовал жемчуг headless ruby, но имел спорадические сбои, когда в некоторых наборах тестов, которые требуют capybara-webkit, и сервер xvfb работают параллельно.Непрерывная интеграция - запуск параллельных наборов тестов, требующих xvfb

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

Затем я попытался удалить headless камень и работаю мой тестовый пакет с: DISPLAY=localhost:$display_num.0 xvfb-run bundle exec rake где $display_num является ранее установленной переменной Баш, которая отличается от двух тестовых наборов.

Затем я получаю сообщение об ошибке: xvfb-run: error: Xvfb failed to start, когда они запускались параллельно.

Любая помощь по расшифровке это было бы здорово!

ответ

0

Here is the gist, но в конечном итоге вам необходимо запустить один headless за процесс.

Это эффективно осуществляется с помощью файла features/support/javascript.rb ссылка в сущности, соответствующая секция:

# Unnecessary on mac 
if (!OS.mac? && !$headless_started) 

    require 'headless' 
    # allow display autopick (by default) 
    # allow each headless to destroy_at_exit (by default) 
    # allow each process to have their own headless by setting reuse: false 
    headless_server = Headless.new(:reuse => false) 
    headless_server.start 

    $headless_started = true 
    puts "Process[#{Process.pid}] started headless server display: #{headless_server.display}" 
end 
Смежные вопросы