質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Capybara

Capybaraは、 Rubyで開発されているWebアプリケーションテストフレームワークです。Webブラウザ不要でブラウザ上のユーザー操作及びJavaScriptの挙動を自動化することができます。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

0回答

2055閲覧

[再更新]docker環境でrspecのjs:trueのsystemspecでエラーが出てしまう。

DAN56

総合スコア0

Capybara

Capybaraは、 Rubyで開発されているWebアプリケーションテストフレームワークです。Webブラウザ不要でブラウザ上のユーザー操作及びJavaScriptの挙動を自動化することができます。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2021/02/24 01:54

編集2022/01/12 10:55

前提・実現したいこと

docker環境でrspecのjs:trueのsystemspecでエラーが出てしまう。

発生している問題・エラーメッセージ

エラーメッセージ 1.1) Failure/Error: visit root_path Selenium::WebDriver::Error::UnknownError: unknown error: Chrome failed to start: crashed. (chrome not reachable) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53' System info: host: '92c07f261f73', ip: '172.29.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.19.104-linuxkit', java.version: '1.8.0_275' Driver info: driver.version: unknown remote stacktrace: #0 0x004000614199 <unknown>

該当のソースコード

ソースコード **Dockerfile** FROM ruby:2.6.5 # yarnのインストール RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs yarn WORKDIR /local-eating COPY Gemfile Gemfile.lock /local-eating/ RUN gem install bundler -v 2.1.4 RUN bundle install COPY entrypoint.sh /usr/bin/ RUN chmod +x /usr/bin/entrypoint.sh ENTRYPOINT ["entrypoint.sh"] EXPOSE 3000 **docker-compose.yml** version: '3' services: db: image: mysql@sha256:e29f4d4b43951c766cd6bacca8d05ac545ec76bb7f42e798bed5e2038c5e2753 #macM1OSの為、ハッシュ指定でエラーとならないように5.6を指定 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: root ports: - "4306:3306" volumes: - ./mysql-data:/var/lib/mysql web: build: . command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" volumes: - .:/local-eating - bundle:/usr/local/bundle ports: - "3000:3000" depends_on: - db - chrome env_file: my_env_file.env tty: true stdin_open: true environment: SELENIUM_DRIVER_URL: http://chrome:4444/wd/hub chrome: image: selenium/standalone-chrome:latest ports: - "4444:4444" volumes: mysql-data: bundle: **rails_helper.rb** Capybara.register_driver :remote_chrome do |app| url = "http://chrome:4444/wd/hub" caps = ::Selenium::WebDriver::Remote::Capabilities.chrome( 'goog:chromeOptions' => { 'args' => [ 'no-sandbox', 'headless', 'disable-gpu', 'window-size=1680,1050' ] } ) Capybara::Selenium::Driver.new(app, browser: :remote, url: url, desired_capabilities: caps) end RSpec.configure do |config| config.before(:each, type: :system) do driven_by :rack_test end # js:trueのテスト動かず config.before(:each, type: :system, js: true) do driven_by :remote_chrome Capybara.server_host = IPSocket.getaddress(Socket.gethostname) Capybara.server_port = 4444 Capybara.app_host = "http://#{Capybara.server_host}:#{Capybara.server_port}" end end **gemfile** group :test do # Adds support for Capybara system testing and selenium driver gem 'capybara', '>= 2.15' gem 'selenium-webdriver' end group :development, :test do gem 'rspec-rails' end

試したこと

js:true以外のsystemspecはパスするので、chromeの接続自体はできているが、selenium-webdriver使用時にエラーが出てしまう。quiteなどを参考にselenium-webdriverのupdateやchromeコンテナのバージョン確認等行ったがエラー分変わらず。丸2日かけて主にquiteを参考に様々なパターンを試したが改善に至らず、ご教授頂きたいです。
以下参考一部
https://qiita.com/ngron/items/f61b8635b4d67f666d75
https://qiita.com/masarashi/items/84761a4e8de494f4d073
https://qiita.com/ryohei_kh/items/2249c13d30648f50b9c8

補足情報(FW/ツールのバージョンなど)

環境
rails 6.0.3.4
capybara (3.35.3)
rspec-rails (4.0.1)
selenium-webdriver (3.142.7)

OS macM1
Docker previewバージョン7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問