Ответ 1
Чтобы использовать MiniTest::Rails::Testing.default_tasks << 'lib'
, вам нужно добавить драгоценный камень minitest-rails в свой Gemfile. Он отделен от Minitest и добавляет, что многие функции Minitest отсутствуют, которые по умолчанию не включены в Rails. И minitest-rails добавляет другие функции, такие как создание рейк-задач для всех каталогов, имеющих тесты. Поэтому без каких-либо изменений в вашем Rakefile вы можете запускать такие вещи:
$ rake minitest:lib
В качестве альтернативы, чтобы сделать это старомодным способом, вы можете добавить следующее в свой Rakefile:
namespace :test do
desc "Test lib source"
Rake::TestTask.new(:lib) do |t|
t.libs << "test"
t.pattern = 'test/lib/**/*_test.rb'
t.verbose = true
end
end
Rake::Task[:test].enhance { Rake::Task["test:lib"].invoke }
Предполагается, что вы хотите запустить тесты lib без использования каких-либо элементов базы данных. Если вы хотите проводить измерения и транзакции базы данных, тогда вы должны создать задачу рейка с зависимостью от "test: prepare".
namespace :test do
desc "Test lib source"
Rake::TestTask.new(:lib => "test:prepare") do |t|
t.libs << "test"
t.pattern = 'test/lib/**/*_test.rb'
t.verbose = true
end
end
Rake::Task[:test].enhance { Rake::Task["test:lib"].invoke }