【发布时间】:2018-06-01 10:21:13
【问题描述】:
我有一个使用
的 e2e 测试存储库- 用于编写规范和步骤定义的 Cucumber (ruby)
- Capybara 作为驱动程序来浏览和执行用户交互
- Chrome 驱动程序
我想要一个 docker 容器:
- 从
<integration-test-repo-url>拉取repo - 安装所有必要的先决条件(
ruby、bundler、chromedriver、cucumber) - 进入
integration-test-repo并运行./runtests.sh(使用bundle install安装必备的gem,然后运行bundle exec cucumber)
这是我目前所拥有的(使用this docker image):
FROM 2glab/ruby-chrome-driver
RUN \
apt-get update && \
apt-get install -qy bundler && \
apt-get install -qy cucumber
RUN useradd -d /home/<user> -ms /bin/bash -g root -G sudo -p <user> <password>
USER <user>
WORKDIR /home/<user>
RUN cd && git clone <my_repo_url>
WORKDIR <my_repo_folder>
RUN bundle install && bundle exec cucumber
很遗憾,这会导致错误:
unknown error: Chrome failed to start: crashed
(Driver info: chromedriver=2.37.544315 (730aa6a5fdba159ac9f4c1e8cbc59bf1b5ce12b7),platform=Linux 4.9.87-linuxkit-aufs x86_64) (Selenium::WebDriver::Error::UnknownError
我将如何解决这个问题?铬缺少什么吗? Chromedriver 缺少什么吗?据我所知,chrome 和 chromedriver 的依赖项应该在 docker 镜像中解决(参见here)。
【问题讨论】:
-
您是否已将 Capybara 配置为在无头模式下运行 Chrome?另请注意,最新的 chromedriver 是 2.39 - 根据您的具体设置,您可能需要在 docker 中配置额外的 Chrome 选项 - 请参阅 stackoverflow.com/questions/50610316/…
-
@ThomasWalpole:我确实在使用
selenium_chrome_headless驱动程序运行(这在 docker 中显然不能正常工作。我将在明天更新问题和/或链接为重复。
标签: docker cucumber capybara selenium-chromedriver