spring
経由で実行すると以下の様なエラーが出てしまった。
コマンド
$ spring rspec spec
/Users/uchiko/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-rails-3.1.0/lib/rspec/rails/matchers.rb:15:in `rescue in <top (required)>': Test is not a module (TypeError)
spring stop
してみても直らない。
spring
を経由しなければエラーは起こらない。
原因は、railsのTask機能を確認するために、
以下の内容のファイルを作っていたからだった。
lib/tasks/test.rb
class Test
def self.hoge
puts 'hoge'
end
end
springを実行した時、
Railsアプリ全体が読み込まれてTest
クラスが定義されてしまった後、
rspec-rails
でTest
モジュールを定義しようとしてエラーが出ていた。
lib/tasks/test.rb
を消したら直った。