読者です 読者をやめる 読者になる 読者になる

NoMethodError: undefined method `get' for #

Rspecのテストクラスを自動生成した状態で、全体のテストを実行するとエラーとなる現象で躓きました。

詳細なエラーの内容は以下の通りでした。

[ruby] /Users/ymanabe/.rbenv/versions/1.9.3-p194/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) "/Users/ymanabe/Library/Application Support/IntelliJIdea11/ruby/rb/testing/runner/specs_in_folder_runner.rb" Testing started at 18:32 ... /Users/ymanabe/.rbenv/versions/1.9.3-p194/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/ymanabe/.rbenv/versions/1.9.3-p194/bin/rspec --require teamcity/spec/runner/formatter/teamcity/formatter --format Spec::Runner::Formatter::TeamcityFormatter /Users/ymanabe/beagle_projects/rails/keihi/spec/controllers/ledgers_controller_spec.rb Work directory: /Users/ymanabe/beagle_projects/rails/keihi/spec/controllers}

Searching files....

  1. /Users/ymanabe/beagle_projects/rails/keihi/spec/controllers/ledgers_controller_spec.rb:1 1 files were found.

RSpec script : /Users/ymanabe/.rbenv/versions/1.9.3-p194/bin/rspec Spec Options:

[]

Running specs... Command line: ["/Users/ymanabe/.rbenv/versions/1.9.3-p194/bin/ruby", "-e", "$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)", "/Users/ymanabe/.rbenv/versions/1.9.3-p194/bin/rspec", "--require", "teamcity/spec/runner/formatter/teamcity/formatter", "--format", "Spec::Runner::Formatter::TeamcityFormatter", "/Users/ymanabe/beagle_projects/rails/keihi/spec/controllers/ledgers_controller_spec.rb"] NoMethodError: undefined method get' for # … NoMethodError: undefined methodget' for # … 2 examples, 2 failures, 0 passed Finished in 0.012341 seconds /Users/ymanabe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/file_utils.rb:53:in block in create_shell_runner': Command failed with status (1): [/Users/ymanabe/.rbenv/versions/1.9.3-p194/...] (RuntimeError) from /Users/ymanabe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/file_utils.rb:45:incall' from /Users/ymanabe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/file_utils.rb:45:in sh' from /Users/ymanabe/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/rake/file_utils_ext.rb:39:insh' from /Users/ymanabe/Library/Application Support/IntelliJIdea11/ruby/rb/testing/runner/specs_in_folder_runner.rb:139:in ' from -e:1:inload' from -e:1:in `' Process finished with exit code 1 [/ruby]

それぞれ個別にDescribe宣言をテストすると正常に動作するし上記のエラーも出ないのですが、全体を一括でテストするとエラーになってしまいます。

困ったときはGoogleで検索するしかないのでGoogleで調べたところ、下記に同様な現象が発生していることを確認しました。

[ruby] Undefined method `get' for # :controller do [/ruby]

のように変更することで正常に動作するようになりました。

のっけから躓いてどうしようと思っていましたが、とりあえず解決してめでたしめでたしです。