以下の内容はhttps://shinkufencer.hateblo.jp/entry/2019/12/28/000000より取得しました。


RSpec(rspec-rails)のrails_helperの初期設定は「RAILS_ENVがなければtestにする」という設定なので気をつける

RAILS_ENVを意図的に設定しているとRSpecが動かない場面に遭遇するので気をつける、というメモ。

環境

rspec-rails (3.8.1)

該当記述

rails g rspec:install で生成されるファイルのテンプレートは以下のような記述になっている

ENV['RAILS_ENV'] ||= 'test'

rspec-rails/rails_helper.rb at master · rspec/rspec-rails

そのため、能動的に環境変数を書いているときに bundle exec rspec をしてもうまく動かないときがあるので注意すること。

RAILS_ENVがある状態でRSpecを実行するとどうなるか

一番ありうるケースとしてはtest用のgemが入っておらず該当するクラスがありません!と言うエラーで落ちる。

例えば以下のような感じ

group :test do
  gem 'hogehogetestsupport'
end
bundler: failed to load command: rspec (/usr/local/bundle/bin/rspec)
NameError: uninitialized constant HogeHogeTestSupport

対応方法

RSpec走らせたいときはどのみちRAILS_ENVをtestにしたいはずなので、記述を以下のようにする。

ENV['RAILS_ENV'] = 'test'

関連リンク




以上の内容はhttps://shinkufencer.hateblo.jp/entry/2019/12/28/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14