我正在尝试使用rake测试:使用Rails 3.1.1和Ruby 1.9.3进行基准测试
我已经尝试过最新的rake版本:gem'rake','〜> 0.9.3.beta.1' 官方和建议的ruby-prof gem:gem'ruby-prof',:git => 'https://github.com/wycats/ruby-prof.git'
但我总是得到这个错误:
rake test:benchmark
/usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/test/unit.rb:167:in `block in non_options': file not found: --benchmark (ArgumentError)
from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/test/unit.rb:146:in `map!'
from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/test/unit.rb:146:in `non_options'
from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/test/unit.rb:207:in `non_options'
from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/test/unit.rb:52:in `process_args'
from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/minitest/unit.rb:891:in `_run'
from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/minitest/unit.rb:884:in `run'
from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/test/unit.rb:21:in `run'
from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/test/unit.rb:326:in `block (2 levels) in autorun'
from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/test/unit.rb:27:in `run_once'
from /usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/test/unit.rb:325:in `block in autorun'
rake aborted!
Command failed with status (1): [/usr/local/rvm/rubies/ruby-1.9.3-p0/bin/ru...]
/usr/local/rvm/gems/ruby-1.9.3-p0/gems/railties-3.1.1/lib/rails/test_unit/testing.rake:26:in `block (2 levels) in define'
/usr/local/rvm/gems/ruby-1.9.3-p0/gems/railties-3.1.1/lib/rails/test_unit/testing.rake:11:in `block in define'
Tasks: TOP => test:benchmark
(See full trace by running task with --trace)
在我的ubuntu服务器和Windows开发环境中都会发生这种情况。有什么想法吗?
更新:我安装了RVM并尝试使用ruby 1.9.2:它可以工作。其他一切都是一样的,切换到1.9.3会带来错误。这可能是ruby 1.9.3或rails / rake等中的错误。
答案 0 :(得分:3)
您需要安装测试单元Gem。见https://github.com/rails/rails/issues/4938
答案 1 :(得分:0)
您是否尝试过使用bundle exec
?
$ bundle exec rake test:benchmark