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

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

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

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

RSpec

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

Ruby on Rails

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

Q&A

0回答

459閲覧

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

IKEDA_2022

総合スコア0

Ruby

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

RSpec

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

Ruby on Rails

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

0グッド

0クリップ

投稿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

1require 'rails_helper' 2 3RSpec.describe "Tasks", type: :system do 4 let(:user) { FactoryBot.create(:user) } 5 let(:project) { 6 FactoryBot.create(:project, 7 name: "RSpec tutorial", 8 owner: user) 9 } 10 let!(:task) { project.tasks.create!(name: "Finish RSpec tutorial") } 11 12 scenario "user toggles a task", js: true do 13 sign_in user 14 go_to_project "RSpec tutorial" 15 16 complete_task "Finish RSpec tutorial" 17 expect_complete_task "Finish RSpec tutorial" 18 19 undo_complete_task "Finish RSpec tutorial" 20 expect_incomplete_task "Finish RSpec tutorial" 21 end 22 23 ーー以下省略ーー

試したこと

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

ruby

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

ruby

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

ruby

1source "https://rubygems.org" 2git_source(:github) { |repo| "https://github.com/#{repo}.git" } 3 4ーー省略ーー 5 6group :test do 7 # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing] 8 # TODO: waiting for release https://github.com/teamcapybara/capybara/pull/2520 9 gem "capybara", github: 'teamcapybara/capybara' 10 gem "selenium-webdriver" 11 gem "webdrivers" 12 13 gem 'launchy' # add in chapter 6 14 gem 'shoulda-matchers' # add in chapter 9 15 gem 'vcr' # add in chapter 10 16 gem 'webmock' # add in chapter 10 17end 18 19gem 'devise' 20gem 'net-imap' 21gem 'net-pop' 22gem 'net-smtp' 23gem 'activestorage-validator' 24gem '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

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問