我正在创建 Rails 性能测试,如Rails Guide中所述,但我遇到了 ruby-prof 问题。
我正在使用 Ruby 1.9.2-p0(尽管在 p320 上遇到了同样的问题)和 Rails 3.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)。如果我改用那个 repo:
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
run': undefined method
values' for [#]:Array ( NoMethodError) 来自 /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),我会得到同样的错误:
宝石'红宝石教授'
任何想法出了什么问题,或者如何解决它?