Я пытаюсь запустить MiniTest с Spec синтаксис с rake test
и получаю эту ошибку:Minitest неинициализированным постоянная ошибка
/path/to/gem/spec/script_spec.rb:3:in `<top (required)>': uninitialized constant MyGem (NameError)
Мои Rakefile:
require 'rake/testtask'
Rake::TestTask.new do |t|
t.test_files = FileList['spec/*_spec.rb']
end
Моя структура файла:
My script.rb:
module MyGem
class OptionParser
def self.option?(arg)
arg =~ /^-{1,2}\w+$/
end
end
end
Использование синтаксиса Minitest :: Spec в script_spec.rb:
require "minitest/autorun"
describe MyGem::OptionParser do
describe "option?" do
it "must be true for option name" do
OptionParser.option?('--nocolor').assert true
end
end
end
Как я могу это исправить? Может быть, lib
папка не загружена? Я пропустил что-то, связанное с синтаксисом Spec?
Я не совсем понимаю, почему Rake использует 't.libs' то? Я думаю, что предполагается загрузить все файлы из 't.libs' папок. По умолчанию 'Rake :: TestTask' добавляет' lib' в 'libs', поэтому нет необходимости писать' t.libs = ['lib'] 'или что-то подобное. Я пробовал делать это на всякий случай и без эффекта. – leemour
Я вижу. Не знал об этом! В этом случае я удалю эту строку из своего ответа. Помог ли мой ответ решить вашу проблему? – Gjaldon
Думаю, я сейчас понимаю. Еще один вопрос. Если мой 'script.rb' (требуется в' spec_helper.rb') требует всех остальных моих файлов gem, должен ли я просто потребовать его и все? Или я должен проводить тестирование отдельно в разных файлах? Какая самая лучшая практика? – leemour