今回はrspec
のsystem_spec
をを導入するときの、エラーです。
「Failed to find Chrome binary」への対処
結論から言うと、以下のようにgem
ファイルと、docker-compose.yml
ファイルにてchrome
をDocker
環境に入れてあげた結果、テストが行えるようになりました。
Gemfile
group :test do
# Adds support for Capybara system testing and selenium driver
gem 'capybara'
# A browser automation framework and ecosystem
gem 'selenium-webdriver'
# Keep your Selenium WebDrivers updated automatically
gem 'webdrivers', require: !ENV['SELENIUM_REMOTE_URL']
end
docker-compose.yml
version: '3'
services:
app:
build:
context: .
environment:
SELENIUM_REMOTE_URL: http://webdriver_chrome:4444/wd/hub
depends_on:
- db
- webdriver_chrome
command: bin/rails s -b 0.0.0.0 -p 3000
db:
# ...
webdriver_chrome:
image: selenium/standalone-chrome
👇を参考にしました。
https://github.com/titusfortner/webdrivers/issues/148
結局Docker環境については別の領域になるため、別途chrome
をインストールしてあげた環境を作る必要があると言うことだと思っています。
docker-compose.yml
ではなく、Dockerfile
にchrome
のインストールの記述を書いてあげることもできます。