lul*_*ala 5 ruby rubygems minitest
我正在使用 Ruby 2.0。
有时我会遇到无法简单地解决的情况require 'minitest'。它给了我
irb> require 'minitest'
LoadError: cannot load such file -- minitest
from rubygems/core_ext/kernel_require.rb:55:in `require'
Run Code Online (Sandbox Code Playgroud)
我需要先安装 minitest gem。不过我认为 minitest 是捆绑在 Ruby 标准库中的。
什么时候我们需要通过gem installGemfile 显式安装 minitest gem?
如果需要显式安装,是否应该bundle install优先选择Gemfile gem install?
我自己用的是rbenv。我也通过 rbenv 安装 Ruby。
我的ruby版本是ruby 2.0.0p353(2013-11-22修订版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"
Run Code Online (Sandbox Code Playgroud)
这是当它不是的时候。我安装了 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"
Run Code Online (Sandbox Code Playgroud)
所以我想当使用旧的 minitest 版本时,我应该通过 Gemfile/bundler 显式安装版本 5。
| 归档时间: |
|
| 查看次数: |
3155 次 |
| 最近记录: |