2015-04-19 30 views
3

我沿着RubyGems的Make your own Gem指南进行操作。执行rake test说明失败如下:如何使耙测试不使用默认的minitest?

> 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> 

我想,这是因为所使用的MINITEST版本4.7.5,而不是5.6.0(或任何5.0.0系列是需要有MiniTest::Test是有效的)。所以我安装了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是几乎是不可能的)。

设置

  • 红宝石下rbenv 0.4.0-129-g7e0e85b 2.1.2
  • 耙(10.1.0)
  • MINITEST(5.6.0,4.7.5)
  • 的Ubuntu 14.04

编辑

Rakefile和/或test_hola.rb中添加gem "minitest"不能解决问题。

回答

0

我使用的解决办法是删除位于老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)是正确的。

0

和下面的一行到您的Rake文件:

gem "minitest" 
+0

在Rakefile或测试文件中添加gem“minitest”不起作用。我仍然得到同样的错误。 – William

相关问题