ruby-on-rails - para - instalar ruby en windows
Gema sin cabeza: webkit_server: no se puede conectar al servidor X (4)
Estaba tratando de hacer que la gema de capybara-webkit trabajara con capybara y terminé usando xvfb-run
en el trabajo de CI para mis pruebas.
xvfb-run bundle exec cucumber ...
¿Cuál es el comando que está ejecutando su trabajo de CI?
Tengo algunos problemas para ejecutar capybara-webkit con la gema Headless, Xvfb y nuestro servidor ci. Utilizamos esta configuración para las pruebas de integración automática y las pruebas de javascript de nuestra aplicación Ruby on Rails 3.2. Durante las pruebas se queja de que
webkit_server: cannot connect to X server
Pero cuando me ps aux | grep Xvfb
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
Veo el Xvfb corriendo. Si ejecuto las pruebas con --trace
, solo muestra el registro de errores anterior y no puedo corregir el error.
¿Alguna idea de cómo podría obtener más información, o incluso una solución?
Instalar xvfb
sudo apt-get install xvfb
Luego ejecute su comando usando xvfb
xvfb-run rspec
Nos encontramos con el mismo problema ... Resulta que en nuestro spec_helper.rb nos faltaba el comando de inicio sin cabeza (a continuación).
Aquí está nuestra configuración 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
Si está utilizando Travis CI, es posible que obtenga un kilometraje de este ajuste de configuración:
before_install:
- "echo ''gem: --no-document'' > ~/.gemrc"
- "echo ''--colour'' > ~/.rspec"
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start