如何让 rake 测试不使用默认的 minitest?
How to make rake test not use the default minitest?
我正在关注来自 RubyGems 的 Make your own Gem 指南。执行rake test
指令失败如下:
> rake test
~/.rbenv/versions/2.1.2/lib/ruby/2.1.0/minitest/unit.rb:26:in `const_missing': uninitialized constant MiniTest::Test (NameError)
<rest of output truncated>
我认为这是因为正在使用的最小测试版本是 4.7.5
而不是 5.6.0
(或者任何需要 MiniTest::Test
有效的 5.0.0 系列).所以我安装了 minitest 5.6.0
,现在我有两个版本的 minitest
。然而 rake test
仍将只使用 4.7.5
版本。
如何才能让运行rake test
在指南的设置中使用正确的minitest
?
直接使用ruby有效:
> ruby -Ilib test/test_hola.rb
Run options: --seed 48777
# Running:
...
Finished in 0.002862s, 1048.3550 runs/s, 1048.3550 assertions/s.
3 runs, 3 assertions, 0 failures, 0 errors, 0 skips
删除 minitest 4.7.5 几乎是不可能的 ;)。
设置
- Ruby rbenv 下的 2.1.2 0.4.0-129-g7e0e85b
- 耙子 (10.1.0)
- 迷你测试 (5.6.0, 4.7.5)
- Ubuntu 14.04
编辑
在 Rakefile
and/or test_hola.rb
中添加 gem "minitest"
没有解决问题。
以及您的 Rakefile 的以下行:
gem "minitest"
我使用的解决方案是删除位于以下位置的旧 minitest 目录:
~/.rbenv/versions/2.1.2/lib/ruby/2.1.0/minitest/
.
的确,尽管 gem list minitest -d
返回:
*** LOCAL GEMS ***
minitest (5.6.0, 4.7.5)
Author: Ryan Davis
Homepage: https://github.com/seattlerb/minitest
License: MIT
Installed at (5.6.0): ~/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
(4.7.5, default): ~/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
minitest provides a complete suite of testing facilities supporting
TDD, BDD, mocking, and benchmarking
default minitest
位置实际上是 ~/.rbenv/versions/2.1.2/lib/ruby/2.1.0/minitest/
。较新 minitest
(在本例中为 5.6.0
)的报告位置是正确的。
我正在关注来自 RubyGems 的 Make your own Gem 指南。执行rake test
指令失败如下:
> rake test
~/.rbenv/versions/2.1.2/lib/ruby/2.1.0/minitest/unit.rb:26:in `const_missing': uninitialized constant MiniTest::Test (NameError)
<rest of output truncated>
我认为这是因为正在使用的最小测试版本是 4.7.5
而不是 5.6.0
(或者任何需要 MiniTest::Test
有效的 5.0.0 系列).所以我安装了 minitest 5.6.0
,现在我有两个版本的 minitest
。然而 rake test
仍将只使用 4.7.5
版本。
如何才能让运行rake test
在指南的设置中使用正确的minitest
?
直接使用ruby有效:
> ruby -Ilib test/test_hola.rb
Run options: --seed 48777
# Running:
...
Finished in 0.002862s, 1048.3550 runs/s, 1048.3550 assertions/s.
3 runs, 3 assertions, 0 failures, 0 errors, 0 skips
删除 minitest 4.7.5 几乎是不可能的 ;)。
设置
- Ruby rbenv 下的 2.1.2 0.4.0-129-g7e0e85b
- 耙子 (10.1.0)
- 迷你测试 (5.6.0, 4.7.5)
- Ubuntu 14.04
编辑
在 Rakefile
and/or test_hola.rb
中添加 gem "minitest"
没有解决问题。
以及您的 Rakefile 的以下行:
gem "minitest"
我使用的解决方案是删除位于以下位置的旧 minitest 目录:
~/.rbenv/versions/2.1.2/lib/ruby/2.1.0/minitest/
.
的确,尽管 gem list minitest -d
返回:
*** LOCAL GEMS ***
minitest (5.6.0, 4.7.5)
Author: Ryan Davis
Homepage: https://github.com/seattlerb/minitest
License: MIT
Installed at (5.6.0): ~/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
(4.7.5, default): ~/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
minitest provides a complete suite of testing facilities supporting
TDD, BDD, mocking, and benchmarking
default minitest
位置实际上是 ~/.rbenv/versions/2.1.2/lib/ruby/2.1.0/minitest/
。较新 minitest
(在本例中为 5.6.0
)的报告位置是正确的。