Capybara-webkit, спецификации интеграции rspec и xvfb: webkit_server: фатальная ошибка ввода-вывода: клиент убит - PullRequest
3 голосов
/ 19 августа 2011

Я пытаюсь получить набор спецификаций интеграции, работающих на CI-сервере Ubuntu Server, используя безголовый гем, xvfb и capybara-webkit для безголового тестирования. На локальном устройстве разработчика все прекрасно работает, но после переноса на CI-сервер все становится интереснее.

В помощнике спецификаций есть немного обтекания кода: js включил спецификации интеграции в блок без заголовка, например:

  config.around(:each, :js => true) do |example|
    Headless.ly &example 
  end

Как я уже сказал, все это прекрасно работает на локальном устройстве разработчика. В CI, который использует безголовый гем и xvfb в качестве одного и того же пользователя для тестов для другого проекта, попытка запустить спецификации интеграции приводит к следующей ошибке, когда спецификации потребуется создать экземпляр браузера:

webkit_server: фатальная ошибка ввода-вывода: клиент убил

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

До сих пор я проверял / пробовал следующее:

  • Пользователь CI определенно имеет права на запуск xvfb
  • Запуск "Xvfb: 99 -ac", когда пользователь CI выдает одно предупреждение о не найденном шрифте, других проблем нет

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

Спасибо!

Ответы [ 3 ]

9 голосов
/ 26 августа 2011

Я не уверен, что это совершенно правильное решение, но, похоже, оно мне подходит. Вместо того, чтобы делать:

bundle exec spec

Запустите команду с Xvfb, вот так и удалите использование безголового самоцвета:

xvfb-run bundle exec spec

Кажется, немного неправильно, но это работает.

2 голосов
/ 22 ноября 2012

у меня сработало следующее. Я не уверен, почему отсутствует "-a" не удается запустить xvfb. Моя сборка выполняет тесты @javascript на ubuntu + jenkins CI

DISPLAY=localhost:0.0 xvfb-run -a bundle exec cucumber
1 голос
/ 07 января 2012

Не уверен, что это связано (я использовал capybara-webkit вместо драгоценного камня без головы), но на моем экземпляре ubuntu (ubuntu lucid на ec2) мне также нужно было выполнить:

sudo xhost +local:jenkins

чтобы разрешить учетной записи jenkins общаться с xvfb. См .: Невозможно подключиться к X-серверу: 0.0 с приложением Qt

...