2014-11-26 6 views
6
starten

Ich bin mit Capybara webkit auf Ubuntu (14.04 LTS) und ich bekomme die folgende Fehlermeldung, wenn sie versuchen, es zu benutzen:Capybara Webkit Capybara :: Webkit :: Connection fehlgeschlagen

Capybara::Webkit::ConnectionError: /srv/www/app/shared/bundle/ruby/2.1.0/gems/capybara-webkit-1.3.1/bin/webkit_server failed to start. 
from /srv/www/app/shared/bundle/ruby/2.1.0/gems/capybara-webkit-1.3.1/lib/capybara/webkit/connection.rb:75:in `parse_port' 
from /srv/www/app/shared/bundle/ruby/2.1.0/gems/capybara-webkit-1.3.1/lib/capybara/webkit/connection.rb:81:in `discover_port' 
from /srv/www/app/shared/bundle/ruby/2.1.0/gems/capybara-webkit-1.3.1/lib/capybara/webkit/connection.rb:62:in `start_server' 
from /srv/www/app/shared/bundle/ruby/2.1.0/gems/capybara-webkit-1.3.1/lib/capybara/webkit/connection.rb:25:in `initialize' 
from /srv/www/app/shared/bundle/ruby/2.1.0/gems/capybara-webkit-1.3.1/lib/capybara/webkit/driver.rb:17:in `new' 

I installiert QT mit:

sudo apt-get install libqt4-dev libqtwebkit-dev libqt5webkit5-dev 

Verwendung gem Versionen: capybara (2.4.4) und capybara-webkit (1.3.1)

Das gleiche Programm funktioniert auf mac (qt installiert mit Homebrew) fein

Danke

Antwort

4

Ich schlug meinen Kopf gegen den ganzen Morgen. Stellt sich heraus, hatte ich diesen Code aus rails_helper.rb weggelassen:

if ENV['HEADLESS'] 
    require 'headless' 
    headless = Headless.new 
    headless.start 
    at_exit { headless.stop } 
end 

Wir verwenden die HEADLESS Umgebungsvariable diese auszulösen. Nicht sicher, ob das typisch oder eine lokale Konvention ist. Unabhängig davon musste ich export HEADLESS=1 zu .env hinzufügen, um das abzuschalten.

Ich musste auch gem 'headless', '~> 1.0.2' in Gemfile hinzufügen.

8

Es ist lange her, seit diese Frage gestellt wurde, aber ich hatte das gleiche Problem, obwohl ich viel ältere Versionen von irgendetwas verwendet habe. Es stellte sich heraus, dass webkit in der Lage sein muss, sich mit irgendeinem X-Server zu verbinden, und dies ist seine Reaktion, wenn es fehlschlägt. Ich landete Installation xvfb und mit

xvfb-run --auto-servernum bundle exec rake test 

(aliased natürlich), wenn meine Tests ausgeführt werden. Das ist wahrscheinlich weniger als optimal, aber es war gut genug für mich. Vielleicht hilft das der nächsten Person, die über diesen Fehler stolpert.