Railsガイドで説明されているようにRailsパフォーマンステストを作成していますが、ruby-profで問題が発生しています。
私はRuby1.9.2-p0(p320でも同じ問題が発生しました)とRails3.1.0を使用しています。
この例と同等のコントローラーの非常に簡単なテストがあります。
ガイドによると、パフォーマンステストを使用する前にruby-profをインストールする必要があります。案の定、それなしでパフォーマンステストを実行すると、次のようになります。
ベンチマークを実行するには、Gemfileでアプリケーションの依存関係としてruby-profを指定します。
手紙のガイドの指示に従うと、これをGemfileに追加します。
gem'ruby-prof'、:git =>'git://github.com/wycats/ruby-prof.git'
...そしてwycatsリポジトリからバージョン0.11.0を入手します。テストを実行すると、次のエラーが発生します。
/Users/craig/.rvm/gems/ruby-1.9.2-p0/bundler/gems/ruby-prof-ffae61a89553/lib/ruby-prof/abstract_printer.rb:44:in `inspect': undefined method `to_s' for #<Class:0x000001025a3f18> (NoMethodError)
from /Users/craig/.rvm/gems/ruby-1.9.2-p0/bundler/gems/ruby-prof-ffae61a89553/lib/ruby-prof/abstract_printer.rb:44:in `full_name'
...
しかし、「wycats」は、ruby-profの正規のGithubリポジトリではないようです。ドキュメントはrdp(Roger Pack)を参照しています。代わりにそのリポジトリを使用する場合:
gem'ruby-prof'、:git =>'git://github.com/rdp/ruby-prof.git'
...バージョン0.11.2を取得すると、次のエラーが発生します。
/Users/craig/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.1.0/lib/active_support/testing/performance/ruby.rb:39:in values'for
run': undefined method
[#]:Array( NoMethodError)from /Users/craig/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.1.0/lib/active_support/testing/performance.rb:140:in `run_profile'.. ..
rubygemsのgemを直接使用した場合も同じエラーが発生します(ここでも、バージョン0.11.2)。
gem'ruby-prof'
何がうまくいかないのか、それを解決する方法はありますか?