🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails 5

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

Ruby

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

Docker

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

Q&A

解決済

1回答

791閲覧

Rubocopの設定に関するエラーで困っています。

Arly3

総合スコア5

Ruby on Rails 5

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

Ruby

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

Docker

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

0グッド

1クリップ

投稿2019/10/25 06:23

前提・実現したいこと

現在、ポートフォリオ作成のための掲示板アプリのようなものを製作しています。
先日までは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への理解が浅くこれ以上の原因究明が行えませんでした...
何か少しでも心当たり等ありましたらコメントお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

if Rails.env.production?
Dir[Rails.root.join("spec/support/**/*.rb")].each { |file| require file}
begin
ActiveRecord::Migration.maintain_test_schema!
rescue ActiveRecord::PendingMigrationError => e
puts e.to_s.strip
exit 1
end

endが足りません。

ruby

1if Rails.env.production? 2 Dir[Rails.root.join("spec/support/**/*.rb")].each { |file| require file} 3 begin 4 ActiveRecord::Migration.maintain_test_schema! 5 rescue ActiveRecord::PendingMigrationError => e 6 puts e.to_s.strip 7 exit 1 8 end 9end

投稿2019/10/25 07:29

asm

総合スコア15149

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

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

Arly3

2019/10/25 08:45

上の方をあまり確認していませんでした... お手数おかけしました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問