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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 6

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

RSpec

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

Docker

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

Q&A

0回答

1337閲覧

docker上でsystemspecを実行したが、javascript利用箇所でエラーが出る

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 6

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

RSpec

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

Docker

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

0グッド

1クリップ

投稿2020/11/30 05:21

現在ruby on railsのポートフォリオにdockerを導入しています。
chromeのimageを指定して、systemspec自体は動くようになったのですが、数カ所でエラーが起きています。

error

1 Comments コメント削除 投稿ユーザーの場合 コメントの削除ができる 2 Failure/Error: page.accept_confirm '削除しますか?' 3 4 Capybara::NotSupportedByDriverError: 5 Capybara::Driver::Base#accept_modal

このほかにもエラーが何箇所か起きているのですが、Javascriptを使っている部分で起きています。

調べたところ、テストに js:trueのオプションをつける必要があるとのことでしたのでjsを使用しているテストコードにit 'コメントの削除ができる', js:true doとしてテストを実行したのですが、ブラウザーが見つからないというエラーが発生してしまいます。

1.1) Failure/Error: driven_by :remote_chrome Webdrivers::BrowserNotFound: Failed to find Chrome binary.

解決をしたいのですが、どのようにコードを改善すれば良いかわからないため、わかる方いましたらご教授いただきたいです。
以下、該当ファイルのコードです。

Dockerfile

FROM ruby:2.6.5 RUN apt-get update -qq && apt-get install -y build-essential imagemagick nodejs RUN mkdir /search_laundry WORKDIR /search_laundry COPY Gemfile /search_laundry/Gemfile COPY Gemfile.lock /search_laundry/Gemfile.lock RUN gem install bundler && bundle install COPY . /search_laundry

docker-compose.yml

version: '3' services: db: image: mysql:5.7 command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci environment: MYSQL_USER: root MYSQL_PASSWORD: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: search_laundry_development ports: - "3306: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'" environment: - AWS_ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY - GOOGLE_MAP_API volumes: - .:/search_laundry ports: - "3000:3000" depends_on: - db - chrome tty: true stdin_open: true chrome: image: selenium/standalone-chrome:latest ports: - 4444:4444 volumes: mysql-data: driver: local

rails_helper

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, js: true) do driven_by :remote_chrome Capybara.server_host = IPSocket.getaddress(Socket.gethostname) Capybara.server_port = 3001 Capybara.app_host = "http://#{Capybara.server_host}:#{Capybara.server_port}" end config.before(:each, type: :system) do driven_by :rack_test end end

開発環境は以下のとおりです。

  • rails 6.0.3.3
  • docker 19.03.13
  • rspec 4.0.1

よろしくお願いいたします。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問