2014-11-26 26 views
6

Używam capybara WebKit na Ubuntu (14.04 LTS), a ja otrzymuję następujący błąd podczas próby użycia:Kapibara Webkit Kapibara :: Webkit :: ConnectionError powiodło się

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' 

Zainstalowałem QT przy użyciu:

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

Korzystanie wersje gem: kapibary (2.4.4) i capybara-WebKit (1.3.1)

Ten sam program działa poprawnie na Mac (qt zainstalowany przy użyciu homebrew)

Dzięki

Odpowiedz

4

Uderzyłem głową o to przez cały ranek. Okazuje się, ja pominąć ten kod z rails_helper.rb:

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

Używamy zmiennej środowiskowej Headless do uruchomienia tego. Nie jestem pewien, czy to typowa, czy lokalna konwencja. Niezależnie od tego, musiałem dodać export HEADLESS=1 do .env, aby wyłączyć to.

Musiałem również dodać gem 'headless', '~> 1.0.2' w Gemfile.

8

Minęło dużo czasu, odkąd zadawano to pytanie, ale miałem ten sam problem, mimo że używałem znacznie starszej wersji czegokolwiek. Okazało się, że webkit musi być w stanie połączyć się z jakimś X-serwerem, a to jest jego reakcja, jeśli się nie powiedzie. Skończyło się na zainstalowanie xvfb i korzystania

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

(aliasem oczywiście) podczas uruchamiania moich testów. Prawdopodobnie jest to mniej niż optymalne, ale było wystarczająco dobre dla mnie. Może to pomoże kolejnej osobie, która potknie się o ten błąd.