対象 ver: rubocop (0.71.0)
テストで Rubocop が警告を吐く [ C: Rails/UnknownEnv: Unknown environment staging?. ]
Rails アプリに staging 等の環境を追加して Rails.env.staging?
といった処理を書くと、RuboCop に警告されます
出力されたログ ※一部を省略しています
$ rails rubocop
Inspecting 50 files
.....................C............................
Offenses:
app/controllers/hoge_controller.rb:51:60: C: Rails/UnknownEnv: Unknown environment staging?.
if Rails.env.production? && Rails.env.staging?
^^^^^^^^
50 files inspected, 1 offense detected
どうやらデフォルト以外の環境を自動で認識してくれない模様
解決策
.rubocop.yml に以下を追加
Rails/UnknownEnv:
Environments:
- production
- development
- test
- staging
※上記のオプションを追加する場合、デフォルトの環境( test, development, production )も併せて記述する必要があるので注意してください
いきさつ
※以下は興味のある人向け
現在作成している Rails アプリには、デフォルトで定義されている
- test
- development
- production
に加えて
- staging
環境を定義しており、AWS 上で問題なく稼働していました。
しかし、コード中に
if Rails.env.production? && Rails.env.staging?
という一行を追加したところ例の警告が...
(staging 環境が正しく定義できていないのか?でも環境動いてるし...)
などと思いながら調べていたところ、Issue を発見。
Issue の情報をもとに yml に例の設定を追加したところ、無事にテストが通りました。
以上
内容に間違い等ありましたらコメントでご指摘ください。
この記事が参考になりましたら幸いです。