2013-07-25 18 views
5

otrzymuję następujący błąd podczas próby uruchomienia testów jednostkowych MiniTest z ruby test/test_foo.rb:Błąd podczas próby uruchomienia testów jednostkowych MiniTest

Warning: you should require 'minitest/autorun' instead. 
Warning: or add 'gem "minitest"' before 'require "minitest/autorun"' 
From: 
    /home/emile/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/minitest/autorun.rb:15:``` 

test_foo.rb wygląda tak:

require 'minitest/autorun' 

class TestFoo < MiniTest::Test 
#stuf 
end 

My Gemfile zawiera , a test_foo.rb zawiera require 'minitest/autorun', ale wciąż otrzymuję ostrzeżenie.

Czy to błąd? Jakieś pomysły?

+1

Uruchom test za pomocą 'bundle exec ruby ​​test/test_foo.rb', aby upewnić się, że ruby ​​używa twojej dołączonej wersji minitest. Jeśli po prostu uruchomisz go za pomocą 'ruby test/test_foo.rb', użyjesz globalnego zestawu gemset zamiast lokalnego. – Frost

+0

Dosłownie zinterpretowałem ostrzeżenie i dodałem wiersz 'gem 'minitest'' przed linią' require' minitest/autorun'' i to wydaje się działać. Dziwne, czy jest to oczekiwane? – emilesilvis

+0

To nie jest tak, jak powinno się używać "gem", powiedziałbym. Spróbuj uruchomić go za pomocą 'bundle exec' i zobacz, co się wtedy stanie. – Frost

Odpowiedz

7

Przeprowadź test, używając bundle exec ruby test/test_foo.rb, aby upewnić się, że używasz dołączonych klejnotów (w tym przypadku minitest).

Po uruchomieniu ruby test/test_foo.rb użyjesz zainstalowanych na całym świecie Rubygemów.

Jeśli chcesz grzebać trochę więcej, spróbuj poszukać w /home/emile/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/minitest/autorun.rb, wokół linii 15.

+0

Dziękuję za to. Ciągle o tym zapominam. :) – Till

4

Mam interepreted ostrzeżenia dosłownie i dodał gem linii „” przed MINITEST linia wymaga "minitest/autorun" i to wydaje się działać. Dziwne, czy jest to oczekiwane?

To jest oczekiwane. Informuje ruby, aby używał wersji gem, a nie standardowej wersji biblioteki.

Powiązane problemy