Ruby on rails 3.2 Rails/Zeus:“;MiniTest v5.0.8已过时;错误
我最近设置了Zeus和Minitest来测试Rails应用程序 但是,我得到了以下错误:Ruby on rails 3.2 Rails/Zeus:“;MiniTest v5.0.8已过时;错误,ruby-on-rails-3.2,bundler,minitest,zeus,Ruby On Rails 3.2,Bundler,Minitest,Zeus,我最近设置了Zeus和Minitest来测试Rails应用程序 但是,我得到了以下错误: leo% zeus test /Users/leo/.rvm/gems/ruby-1.9.3-p125@backscratchers/gems/turn-0.9.6/lib/turn/minitest.rb:23:in `<top (required)>': MiniTest v5.0.8 is out of date. `gem install minitest` and add `gem '
leo% zeus test
/Users/leo/.rvm/gems/ruby-1.9.3-p125@backscratchers/gems/turn-0.9.6/lib/turn/minitest.rb:23:in `<top (required)>': MiniTest v5.0.8 is out of date.
`gem install minitest` and add `gem 'minitest' to you test helper. (RuntimeError)
from /Users/leo/.rvm/gems/ruby-1.9.3-p125@backscratchers/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
from /Users/leo/.rvm/gems/ruby-1.9.3-p125@backscratchers/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `block in require'
... etc ...
因此,“过时”或许有点误导。它真正的意思是API不是预期的,对吗
我从我的gem文件中删除了gem'turn'
,运行bundle安装
,然后重新启动宙斯
现在我得到:
/Users/leo/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:328:in `autorun': uninitialized class variable @@installed_at_exit in Test::Unit::Runner (NameError)
from /Users/leo/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:640:in `<top (required)>'
from /Users/leo/.rvm/gems/ruby-1.9.3-p125@backscratchers/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
from /Users/leo/.rvm/gems/ruby-1.9.3-p125@backscratchers/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `block in require'
from /Users/leo/.rvm/gems/ruby-1.9.3-p125@backscratchers/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:236:in `l
... etc ...
/Users/leo/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:328:在“自动运行”中:未初始化的类变量@安装在test::unit::Runner的\u出口处(NameError)
from/Users/leo/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:640:in`'
来自/Users/leo/.rvm/gems/ruby-1.9.3-p125@backscratchers/gems/activesupport-3.2.11/lib/active\u-support/dependencies.rb:251:in'require'
来自/Users/leo/.rvm/gems/ruby-1.9.3-p125@backscratchers/gems/activesupport-3.2.11/lib/active\u support/dependencies.rb:251:in'block in require'
来自/Users/leo/.rvm/gems/ruby-1.9.3-p125@backscratchers/gems/activesupport-3.2.11/lib/active\u-support/dependencies.rb:236:in`l
... 等
这是怎么回事?我是否有错误版本的Minitest?为什么Bundler不能找出依赖链,我想这就是问题所在
非常感谢您的建议。好吧,目前的解决方案似乎是降低Minitest的等级:
gem'minitest',“~>4'
然而,在运行特定测试时,这似乎会导致连锁反应,因为我现在在实际运行测试时遇到未初始化常量MiniTest::test
错误
更新:
MiniTest的旧版本似乎使用了不同的模块/类层次结构,因此MiniTest::Test
必须成为MiniTest::Unit::TestCase
注意Minitest>Minitest的大小写
要查看哪些类可用于小型测试/小型测试,可以使用:
MiniTest.constants.select {|c| Class === MiniTest.const_get(c)}
MiniTest.constants.select {|c| Class === MiniTest.const_get(c)}