无头宝石:webkit_server:无法连接到X服务器

时间:2012-07-12 09:27:50

标签: ruby-on-rails ruby ruby-on-rails-3 webkit capybara-webkit

我在使用Headless gem,Xvfb和我们的ci服务器运行capybara-webkit时遇到了一些问题。我们使用此设置进行Ruby on Rails 3.2应用程序的自动集成测试和javascript测试。在测试期间,它抱怨

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 个答案:

答案 0 :(得分:14)

我试图让capybara-webkit gem与capybara合作,最后在CI作业中使用xvfb-run进行测试。

xvfb-run bundle exec cucumber ...

CI作业正在执行的命令是什么?

答案 1 :(得分:5)

我们遇到了同样的问题......事实证明,在我们的spec_helper.rb中,我们错过了无头启动命令(下面)。

这是我们的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

答案 2 :(得分:3)

如果您使用的是Travis CI,则可能会从此配置设置获得一些里程数:

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

答案 3 :(得分:1)

安装xvfb

sudo apt-get install xvfb 

然后使用xvfb

执行命令
xvfb-run rspec