我正在使用 Ruby 2.0。
有时我会遇到无法简单地require 'minitest'
的情况。它给了我
irb> require 'minitest'
LoadError: cannot load such file -- minitest
from rubygems/core_ext/kernel_require.rb:55:in `require'
我需要先安装 minitest gem。但是我认为 minitest 捆绑在 Ruby 标准库中。
我们什么时候需要通过 gem install
或 Gemfile 显式安装 minitest gem?
如果需要显式安装,Gemfile bundle install
是否优先于 gem install
?
更新
我自己使用 rbenv。我也通过 rbenv 安装我的 Ruby。
我的 ruby 版本是 ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin13.0.2]
最佳答案
所以我意识到 MiniTest 从 4.x 到 5.x 有一些不兼容的更新 不知何故,我使用的是 5.x 版,但我的问题似乎出现在使用 4.x 版时。
这是它按预期工作的时间:
irb> require 'minitest'
=> true
irb> require 'minitest/autorun'
=> true
irb> MiniTest::Test
=> Minitest::Test
irb> MiniTest.constants
=> [:Parallel, :VERSION, :Runnable, :AbstractReporter, :Reporter, :ProgressReporter, :StatisticsReporter, :SummaryReporter, :CompositeReporter, :Assertion, :Skip, :UnexpectedError, :Guard, :BacktraceFilter, :Test, :Assertions, :Unit, :Spec, :Expectations, :Mock]
irb> MiniTest::Unit::VERSION
=> "5.3.2"
这是不是。我安装了 Ruby 2.1 的全新副本并复制了以下内容。
irb> require 'minitest'
LoadError: cannot load such file -- minitest
irb> require 'minitest/autorun'
=> true
irb> MiniTest::Test
NameError: uninitialized constant MiniTest::Test
irb> MiniTest.constants
=> [:Assertion, :Skip, :BacktraceFilter, :Assertions, :Unit, :Spec, :Expectations, :Mock]
irb> MiniTest::Unit::VERSION
=> "4.7.5"
总结
所以我想当使用旧的 minitest 版本时,我应该通过 Gemfile/bundler 显式安装版本 5。
关于ruby - 为什么有时需要安装minitest gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23077637/