18

我在使用 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

4 回答 4

14

我试图让 capybara-webkit gem 与 capybara 一起工作,并最终xvfb-run在 CI 工作中用于我的测试。

xvfb-run bundle exec cucumber ...

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

于 2012-07-16T01:37:26.170 回答
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
于 2012-08-30T21:36:43.387 回答
3

如果您使用的是 Travis CI,您可能会从此配置设置中获得一些好处:

before_install:
- "echo 'gem: --no-document' > ~/.gemrc"
- "echo '--colour' > ~/.rspec"
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
于 2013-10-16T23:30:41.537 回答
1

安装 xvfb

sudo apt-get install xvfb 

然后使用 xvfb 执行您的命令

xvfb-run rspec
于 2014-09-30T20:05:00.140 回答