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

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

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

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

Ruby

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

Ruby on Rails

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

Q&A

0回答

814閲覧

【Ruby on Rails】System SpecでReact部分を読み込まない

yasanoyou

総合スコア11

Capybara

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

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2022/04/22 11:33

編集2022/04/22 11:33

Reactで作成したFormのUIテストをSystem Specで実装しているのですが、js: trueをテストコード内に記述して実行してもテストは通らず、スクリーンショットを確認したところ、Reactで作成した箇所が読み込まれていませんでした。capybaraの設定か何かが間違っているのではとぼんやり思っているのですが、解決策がわからないためもしわかる方がいらっしゃいましたら教えていただけますと幸いです。

*環境
ruby 3.0.3
rails 7.0.0

ruby 2.7.2、Rails 6.0.3で行った時は正常に動作したのでバージョンの関係で何かあるのかなとも感じました。

Gemfile

1group :test do 2 gem 'factory_bot_rails' 3 gem 'ffaker' 4 gem 'rspec-rails' 5 gem 'capybara' 6 gem 'selenium-webdriver' 7 gem 'webdrivers', require: false 8 gem 'database_cleaner' 9 gem 'simplecov', require: false 10 gem 'rails-controller-testing' 11 gem 'rspec-validator_spec_helper' 12 gem 'rspec-request_describer' 13 gem 'rspec-parameterized' 14 gem 'shoulda-matchers' 15end

capybara.rb

1# frozen_string_literal: true 2 3RSpec.configure do |config| 4 Capybara.register_driver :selenium_chrome_headless do |app| 5 Capybara::Selenium::Driver.load_selenium 6 browser_options = ::Selenium::WebDriver::Chrome::Options.new 7 browser_options.args << '--window-size=1400,2000' 8 browser_options.args << '--headless' 9 browser_options.args << '--lang=ja-JP' 10 browser_options.args << '--no-sandbox' 11 browser_options.args << '--disable-dev-shm-usage' 12 browser_options.args << '--disable-gpu' if Gem.win_platform? 13 Capybara::Selenium::Driver.new(app, browser: :chrome, capabilities: browser_options) 14 end 15 16 config.before(:each) do |example| 17 if %i[system feature].include?(example.metadata[:type]) 18 if example.metadata[:js] 19 // ここでbinding.pryとすると、デバッグが走るためjs: trueは動作してると思われる 20 driven_by :selenium_chrome_headless 21 else 22 driven_by :rack_test 23 end 24 end 25 end 26end

spec/rails_helper.rb

1# frozen_string_literal: true 2 3require 'simplecov' 4SimpleCov.start 'rails' do 5 add_filter 'app/channels' 6 add_filter 'app/jobs/application_job.rb' 7 add_filter 'app/mailers/application_mailer.rb' 8end 9require 'spec_helper' 10ENV['RAILS_ENV'] ||= 'test' 11require File.expand_path('../config/environment', __dir__) 12abort('The Rails environment is running in production mode!') if Rails.env.production? 13require 'rspec/rails' 14 15Dir[Rails.root.join('spec/support/**/*.rb')].sort.each { |f| require f } 16 17begin 18 ActiveRecord::Migration.maintain_test_schema! 19rescue ActiveRecord::PendingMigrationError => e 20 puts e.to_s.strip 21 exit 1 22end 23 24RSpec.configure do |config| 25 config.fixture_path = "#{::Rails.root}/spec/fixtures" 26 27 config.use_transactional_fixtures = false 28 29 config.infer_spec_type_from_file_location! 30 31 config.filter_rails_from_backtrace! 32 33 config.include FactoryBot::Syntax::Methods 34 config.include RSpec::ValidatorSpecHelper, type: :validator 35 config.include SystemHelper, type: :system 36 config.include SystemHelper, type: :feature 37 config.include RSpec::RequestDescriber, type: :request 38 # config.include RSpec::JsonMatcher 39 config.include ActiveSupport::Testing::TimeHelpers 40 config.include ActiveJob::TestHelper 41end 42 43Shoulda::Matchers.configure do |config| 44 config.integrate do |with| 45 with.test_framework :rspec 46 with.library :rails 47 end 48end

試したこと
調べたところ、下記コードが元々trueでしたがfalseにすると言う記事をいくつか見かけましたのでやってみましたが、結果は変わりませんでした。

spec/rails_helper.rb

1 config.use_transactional_fixtures = true

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問