New-Village

月間ブログ。だいたい1カ月に1回は更新しているようです。

RSpec エラーケース別対応策

プログラミングのセンスが無いので、良くRspecにエラーを吐かれます。しかも、テストが失敗するのではなくて、rspecが動かないエラーを。

エラー内容を読めば分かる話なんですが…毎度、ドキッとしているので、パニックに陥ったとき用にまとめておきます(笑)

RSpecの実行エラー

実行時のディレクトリを誤っている場合

rspecを実行する際のファイル指定を誤っています。(誤:sprc/ 正:spec/)

$ rspec sprc/

/var/lib/stickshift/52e69b575004466e70000a58/app-root/data/lib/ruby/gems/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load': cannot load such file -- /var/lib/stickshift/52e69b575004466e70000a58/app-root/data/753774/sprc (LoadError)

コーディング指定無しで日本語を使っている場合

ストファイルの先頭に"# coding: utf-8"と書かずに、describeに日本語を使うと以下のエラーが出ます。

$ rspec spec/

/var/lib/stickshift/52e69b575004466e70000a58/app-root/data/lib/ruby/gems/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:223:in `load': /var/lib/stickshift/52e69b575004466e70000a58/app-root/data/753774/spec/requests/authentication_pages_spec.rb:3: invalid multibyte char (US-ASCII) (SyntaxError)

タブや半角スペースの代わりに全角スペースを使っている場合

私は生粋のWindowsユーザーなので、たまにMacを使ってコーディングしていると、全半角を誤って入力していたりします。

$ rspec spec/

/var/lib/stickshift/52e69b575004466e70000a58/app-root/data/753774/spec/requests/authentication_pages_spec.rb:7:in `block in <top (required)>': undefined method ` describe' for #<Class:0x000000046b9050> (NoMethodError)

 RSpec実行後のメッセージ

i18n対応?

テスト結果に差し込まれる、i18nのメッセージ。テスト結果には影響していないんですが長ったらしくいつも表示されます。良く読んでいないのですが、なんか設定が悪くて表示されているみたい?まだ原因分かっていないです。

$ rspec spec/

..[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.

....F..........FF....................

 追記:config/application.rbに以下の一文を挿入すると消えます。i18n関連は、私も理解が不十分なので暫定措置ではありますが。

I18n.enforce_available_locales = false