我正在創建一個Rails性能測試,如Rails Guide中所述,我遇到了ruby-prof問題。Rails性能測試中的ruby-prof錯誤
我使用的是Ruby 1.9.2-p0(儘管在p320上遇到過同樣的問題)和Rails 3.1.0。
我對控制器的測試非常簡單,相當於this example。
根據the guide,我需要安裝ruby-prof才能使用性能測試。果然,當我跑我的性能測試,沒有它,我得到:
Specify ruby-prof as application's dependency in Gemfile to run benchmarks.
如果我按照指南的指示信中,我加入到我的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」似乎並不爲規範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
run': undefined method
values' for [#]: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從(同樣,版本0.11.2):
gem 'ruby-prof'
任何想法發生了什麼事情錯了,還是怎麼解決呢?
太棒了!非常感謝。這個補丁是否提交給rails,出於好奇? – pjammer