我最近設置了Zeus和Minitest來測試Rails應用程序。Rails/Zeus:「MiniTest v5.0.8過時了」錯誤
但是,我得到了以下錯誤:
leo% zeus test
/Users/leo/.rvm/gems/[email protected]/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/[email protected]/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
from /Users/leo/.rvm/gems/[email protected]/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `block in require'
... etc ...
在打開寶石所提及的行是:
# set MiniTest's runner to Turn::MiniRunner instance
if MiniTest::Unit.respond_to?(:runner=)
MiniTest::Unit.runner = Turn::MiniRunner.new
else
raise "MiniTest v#{MiniTest::Unit::VERSION} is out of date.\n" \
"`gem install minitest` and add `gem 'minitest' to you test helper."
#MiniTest::Unit = Turn::MiniRunner
end
所以「過時」是有點誤導可能。它的真正含義是API不是預期的,對嗎?
我從我的Gemfile中刪除了gem 'turn'
,運行bundle install
,然後重新啓動Zeus。
現在,我得到:
/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/[email protected]/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
from /Users/leo/.rvm/gems/[email protected]/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `block in require'
from /Users/leo/.rvm/gems/[email protected]/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:236:in `l
... etc ...
這是怎麼回事?我有沒有錯誤的Minitest版本?爲什麼Bundler無法找出依賴鏈,我認爲這是重點。
任何建議非常感謝。