Безголовый камень: сервер webkit: не удается подключиться к X-серверу

у меня есть некоторые проблемы с запуском capybara-webkit с безголовым драгоценным камнем, Xvfb и нашим сервером ci. Мы используем эту настройку для автоматического тестирования интеграции и javascript-тестирования нашего приложения Ruby on Rails 3.2. Во время тестов он жалуется, что

webkit_server: cannot connect to X server

но, когда я ps aux | grep Xvfb

deploy    1602  0.0  0.1  61696  1912 pts/2    S+   Jul10   0:00 /usr/bin/Xvfb :99 -screen 0 1280x1024x24 -ac

Я вижу, что Xvfb работает. Если я проведу тесты с --trace Он также показывает только журнал ошибок выше, и я не могу отладить ошибку.

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

4 ответов


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

xvfb-run bundle exec cucumber ...

какую команду выполняет ваше задание CI?


мы столкнулись с такой же проблемой... Оказывается, что в нашем spec_helper.rb нам не хватало команды headless start (ниже).

вот наша конфигурация rspec:

require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rspec'
require 'capybara/webkit'
require 'headless'

Capybara.register_driver :webkit do |app|
  Capybara::Driver::Webkit.new(app, :ignore_ssl_errors => true)
end

Capybara.javascript_driver = :webkit

# don't run on the local machine (since we don't have xvfb running locally)
if Rails.env.production?
    headless = Headless.new
    headless.start
end

Если вы используете Travis CI, вы можете получить некоторый пробег от этой настройки конфигурации:

before_install:
- "echo 'gem: --no-document' > ~/.gemrc"
- "echo '--colour' > ~/.rspec"
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start

установить xvfb

sudo apt-get install xvfb 

затем выполните команду с помощью xvfb

xvfb-run rspec