2015-04-19 63 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

相關問題