Ответ 1
Я пытался получить камень capybara-webkit, работающий с capybara, и закончил использование xvfb-run
в задании CI для моих тестов.
xvfb-run bundle exec cucumber ...
Какова команда, выполняемая вашим заданием CI?
У меня возникли проблемы с запуском capybara-webkit с Gemless, Xvfb и нашим сервером ci. Мы используем эту настройку для автоматического тестирования интеграции и тестирования Javascript нашего приложения Ruby on Rails 3.2. Во время тестов он жалуется, что
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
, он также показывает только журнал ошибок выше, и я не могу отладить ошибку.
Любые идеи, как я мог бы получить дополнительную информацию или даже решение?
Я пытался получить камень capybara-webkit, работающий с capybara, и закончил использование xvfb-run
в задании CI для моих тестов.
xvfb-run bundle exec cucumber ...
Какова команда, выполняемая вашим заданием CI?
Мы столкнулись с той же проблемой... Оказывается, что в нашем spec_helper.rb нам не хватало команды безгласного запуска (ниже).
Здесь наш rspec config:
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
Если вы используете Travis CI, вы можете получить пробег от этой настройки:
before_install:
- "echo 'gem: --no-document' > ~/.gemrc"
- "echo '--colour' > ~/.rspec"
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
Установить xvfb
sudo apt-get install xvfb
Затем выполните свою команду с помощью xvfb
xvfb-run rspec