我正在开发一个全新的 Rails 5 应用程序,但无法启动 Capybara-Webkit。我正在跟进这些迹象 https://github.com/thoughtbot/capybara-webkit#ci.
我的开发过程包括 Docker-Compose,然后是 CircleCI,用于构建 Docker 映像并将其发送到 Google Cloud Registry。
The $ bundle install
很好,$ docker build
完成了,但我什至无法使用 Webkit 在本地启动规范。
当我启动此命令时,它会挂起并冻结:
$ docker-compose run web xvfb-run -a bundle exec rspec
我找不到有关 xvfb-run 命令的任何信息,我假设它是打包在 xvfb 中的启动器...
这是我的 Dockerfile:
FROM ruby:2.4.1
RUN apt-get update -qq && apt-get install -y \
build-essential \
libpq-dev \
nodejs \
xvfb \
qt5-default \
libqt5webkit5-dev \
gstreamer1.0-plugins-base \
gstreamer1.0-tools \
gstreamer1.0-x
RUN mkdir /app_dir
WORKDIR /app_dir
ADD Gemfile* /app_dir/
RUN bundle install
COPY . .
编辑 07/08/2017
我认为我被我的开发环境误导了。当我尝试使用guard而不是直接使用rspec启动我的规范时,我收到另一个错误:
Capybara::Webkit::ConnectionError:
/usr/local/bundle/gems/capybara-webkit-1.14.0/bin/webkit_server failed to start.
这对我没有多大帮助。这Github问题 https://github.com/thoughtbot/capybara-webkit/issues/678让我相信我需要用 xvfb 做点什么。
我尝试启动webkit_server
直接从gem bin文件夹中,我收到以下错误:
QXcbConnection: Could not connect to display
Aborted
编辑 #2 2017 年 7 月 8 日
我找到了启动测试套件的方法。如果我首先在 docker compose 系统中启动 bash 终端,那么我就可以毫无问题地使用 xvfb。
$ docker-compose run web bash
then
$ xvfb-run -a bundle exec rspec spec
一切都按预期进行。最初的问题仍然存在:当我启动此命令时:
$ docker-compose run web xvfb-run -a bundle exec rspec
它保持搁置并且永远不会发布任何规范。我正在研究 docker-compose 配置,我一定错过了一些东西。
奇怪的东西:当我通过守卫启动我的规格时,它正在工作......我不知道为什么。
编辑 #3 2017 年 8 月 8 日
我最终写了一个Capybara-Webkit 存储库中的问题。 https://github.com/thoughtbot/capybara-webkit/issues/1019