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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RSpec

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

Ruby on Rails

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

受付中

Everyday Rails(2022年4月20日配信) サンプルアプリの/spec/system/tasks_spec.rbが落ちる

IKEDA_2022
IKEDA_2022

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RSpec

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

Ruby on Rails

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

0回答

0評価

0クリップ

121閲覧

投稿2022/05/26 09:18

前提

Everyday Rails(2022年4月20日配信)の日本語版のサンプルアプリをAWS Cloud9にクローンし、設定を行いrails sでアプリを起動しTOPページを表示出来ました。
イメージ説明

この後、mainブランチにおいてbundle exec rspecでテストを実行すると以下のテストだけが落ちてしまいます。
/spec/system/tasks_spec.rb:12 # Tasks user toggles a task

実現したいこと

  • /spec/system/tasks_spec.rb:12 # Tasks user toggles a task のテストを通したい。

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

Tasks user toggles a task (FAILED - 1) Failures: 1) Tasks user toggles a task Got 0 failures and 2 other errors: 1.1) Failure/Error: visit root_path RuntimeError: Failed to make system call: ["/opt/google/chrome/google-chrome", "--product-version"] # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/system.rb:190:in `call' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/chrome_finder.rb:119:in `linux_version' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/chrome_finder.rb:10:in `version' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/chromedriver.rb:51:in `browser_version' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/chromedriver.rb:135:in `browser_build_version' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/chromedriver.rb:32:in `latest_version' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/common.rb:122:in `download_version' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/common.rb:134:in `correct_binary?' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/common.rb:91:in `update' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/chromedriver.rb:149:in `block in <main>' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service.rb:101:in `binary_path' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service.rb:73:in `initialize' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service.rb:32:in `new' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service.rb:32:in `chrome' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:370:in `service_url' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:311:in `create_bridge' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:74:in `initialize' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:47:in `new' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:47:in `for' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver.rb:88:in `for' # /home/ec2-user/.rvm/gems/ruby-3.1.0/bundler/gems/capybara-d08e88dadd44/lib/capybara/selenium/driver.rb:83:in `browser' # /home/ec2-user/.rvm/gems/ruby-3.1.0/bundler/gems/capybara-d08e88dadd44/lib/capybara/selenium/driver.rb:104:in `visit' # /home/ec2-user/.rvm/gems/ruby-3.1.0/bundler/gems/capybara-d08e88dadd44/lib/capybara/session.rb:278:in `visit' # /home/ec2-user/.rvm/gems/ruby-3.1.0/bundler/gems/capybara-d08e88dadd44/lib/capybara/dsl.rb:52:in `call' # /home/ec2-user/.rvm/gems/ruby-3.1.0/bundler/gems/capybara-d08e88dadd44/lib/capybara/dsl.rb:52:in `visit' # ./spec/system/tasks_spec.rb:24:in `go_to_project' # ./spec/system/tasks_spec.rb:14:in `block (2 levels) in <top (required)>' 1.2) Failure/Error: raise "Failed to make system call: #{cmd}" unless $CHILD_STATUS.success? RuntimeError: Failed to make system call: ["/opt/google/chrome/google-chrome", "--product-version"] # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/system.rb:190:in `call' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/chrome_finder.rb:119:in `linux_version' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/chrome_finder.rb:10:in `version' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/chromedriver.rb:51:in `browser_version' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/chromedriver.rb:135:in `browser_build_version' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/chromedriver.rb:32:in `latest_version' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/common.rb:122:in `download_version' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/common.rb:134:in `correct_binary?' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/common.rb:91:in `update' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/webdrivers-5.0.0/lib/webdrivers/chromedriver.rb:149:in `block in <main>' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service.rb:101:in `binary_path' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service.rb:73:in `initialize' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service.rb:32:in `new' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/service.rb:32:in `chrome' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:370:in `service_url' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:311:in `create_bridge' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:74:in `initialize' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:47:in `new' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver.rb:47:in `for' # /home/ec2-user/.rvm/gems/ruby-3.1.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver.rb:88:in `for' # /home/ec2-user/.rvm/gems/ruby-3.1.0/bundler/gems/capybara-d08e88dadd44/lib/capybara/selenium/driver.rb:83:in `browser' # /home/ec2-user/.rvm/gems/ruby-3.1.0/bundler/gems/capybara-d08e88dadd44/lib/capybara/selenium/driver.rb:161:in `save_screenshot' # /home/ec2-user/.rvm/gems/ruby-3.1.0/bundler/gems/capybara-d08e88dadd44/lib/capybara/session.rb:745:in `block in save_screenshot' # <internal:kernel>:90:in `tap' # /home/ec2-user/.rvm/gems/ruby-3.1.0/bundler/gems/capybara-d08e88dadd44/lib/capybara/session.rb:745:in `save_screenshot' Finished in 0.27391 seconds (files took 1.19 seconds to load) 1 example, 1 failure Failed examples: rspec ./spec/system/tasks_spec.rb:12 # Tasks user toggles a task

該当のソースコード

ruby

require 'rails_helper' RSpec.describe "Tasks", type: :system do let(:user) { FactoryBot.create(:user) } let(:project) { FactoryBot.create(:project, name: "RSpec tutorial", owner: user) } let!(:task) { project.tasks.create!(name: "Finish RSpec tutorial") } scenario "user toggles a task", js: true do sign_in user go_to_project "RSpec tutorial" complete_task "Finish RSpec tutorial" expect_complete_task "Finish RSpec tutorial" undo_complete_task "Finish RSpec tutorial" expect_incomplete_task "Finish RSpec tutorial" end ーー以下省略ーー

試したこと

  • EC2インスタンス再起動、rails server再起動しましたがテストは落ちました。
  • spec/support/capybara.rbの記述を確認。
    headlessの記述あり。

ruby

RSpec.configure do |config| config.before(:each, type: :system) do driven_by :rack_test end config.before(:each, type: :system, js: true) do driven_by :selenium_chrome_headless end end
  • spec/support/vcr.rbの記述を確認。
    config.ignore_hosts 'chromedriver.storage.googleapis.com'の記述あり。

ruby

require "vcr" VCR.configure do |config| config.cassette_library_dir = "#{::Rails.root}/spec/cassettes" config.hook_into :webmock config.ignore_localhost = true config.ignore_hosts 'chromedriver.storage.googleapis.com' config.configure_rspec_metadata! end
  • Gemfileの記述を確認。
    gem "capybara"にバージョン指定なし。
    gem "selenium-webdriver"、 gem "webdrivers"が記述されている。

ruby

source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } ーー省略ーー group :test do # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing] # TODO: waiting for release https://github.com/teamcapybara/capybara/pull/2520 gem "capybara", github: 'teamcapybara/capybara' gem "selenium-webdriver" gem "webdrivers" gem 'launchy' # add in chapter 6 gem 'shoulda-matchers' # add in chapter 9 gem 'vcr' # add in chapter 10 gem 'webmock' # add in chapter 10 end gem 'devise' gem 'net-imap' gem 'net-pop' gem 'net-smtp' gem 'activestorage-validator' gem 'geocoder'

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

aws cloud9
Amazon Linux release 2 (Karoo)

rails 7.0.2.3
ruby 3.1.0 (このバージョンをdefault設定済)
git 2.32.0
yarn 1.22.19
Bundler 2.3.3
google-chrome-stable 102.0.5005.61(x86_64)
foreman 0.87.2
sqlite .x86_64 3.8.11-1.fc21
capybara 3.37.1 d08e88d
selenium-webdriver 4.1.0

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RSpec

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

Ruby on Rails

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