前提・実現したいこと
現在、ポートフォリオ作成のための掲示板アプリのようなものを製作しています。
先日まではCloud9上で開発を行なっていたのですが、環境構築の勉強と色んな技術に触れてみたいと思い、Dockerを用いてローカル環境での開発に取り組みはじめました。
Terminal
1$ rails -v 2Rails 5.2.3 3$ ruby -v 4ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
発生している問題・エラーメッセージ
初めてRSpecを用いてテストを実行しようとしたのですが、その時に今回のエラーに遭遇しました。
以下が_spec.rb
を実行しようとした際のエラー文です。
Terminal
1/APP-NAME$ docker-compose run web rspec spec/system/posts_spec.rb 2Starting APP-NAME_db_1 ... done 3 4An error occurred while loading rails_helper. 5Failure/Error: return gem_original_require(path) 6 7SyntaxError: 8 /my-app/spec/rails_helper.rb:49: syntax error, unexpected end-of-input, expecting end
そこでrubocop
を用いて構文をチェックしようとしたところ以下のエラーが表示されました。
Terminal
1/APP-NAME$ rubocop spec/rails_helper.rb 2Inspecting 1 file 3E 4 5Offenses: 6 7spec/rails_helper.rb:50:1: E: Lint/Syntax: unexpected token $end 8(Using Ruby 2.6 parser; configure using TargetRubyVersion parameter, under AllCops)
構文エラーを指摘されているrails_helper.rb
の内容は以下の通りです。
Ruby
1require 'capybara/rspec' 2require 'spec_helper' 3require 'rspec/rails' 4require 'factory_bot' 5require 'faker' 6 7ENV['RAILS_ENV'] ||= 'test' 8require File.expand_path('../../config/environment', __FILE__) 9abort('The Rails environment is running in production mode!') 10if Rails.env.production? 11 Dir[Rails.root.join("spec/support/**/*.rb")].each { |file| require file} 12begin 13 ActiveRecord::Migration.maintain_test_schema! 14rescue ActiveRecord::PendingMigrationError => e 15 puts e.to_s.strip 16 exit 1 17end 18 19RSpec.configure do |config| 20 config.before(:suite) do 21 DatabaseCleaner.strategy = :transaction 22 DatabaseCleaner.clean_with(:truncation) 23 end 24 25 config.before(:each) do 26 DatabaseCleaner.start 27 end 28 29 config.after(:each) do 30 DatabaseCleaner.clean 31 end 32 33 config.fixture_path = "#{::Rails.root}/spec/fixtures" 34 config.use_transactional_fixtures = true 35 config.infer_spec_type_from_file_location! 36 config.filter_rails_from_backtrace! 37 config.include FactoryBot::Syntax::Methods 38end
試したこと
Lintの構文エラーの解決方法が分からない!(Rubocop)
エラー内容が上記の質問の内容に似ているため/APP-NAME
配下に以下の内容の.ruby-version
ファイルと.rubocop.yml
ファイルを作成しましたが、$ rubocop spec/rails_helper.rb
の実行結果は変わりませんでした...
.ruby-version
ファイル
2.6.3
.rubocop.yml
ファイル
AllCops: TargetRubyVersion: 2.6
原因の考察
AllcopsへのTargetRubyVersionの指定方法が間違っていることが原因のエラーだとは思うのですが、私のRubyへの理解が浅くこれ以上の原因究明が行えませんでした...
何か少しでも心当たり等ありましたらコメントお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/25 08:45