Чтобы использовать 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 }
вы можете переопределить задачи 'грабель test' в' Rakefile' пути создания новой задачи с выполнением 'рубин -Ilib: тест«тест/Библиотека/*» –
Самым простым решением для меня является использование' грабель test: all' вместо 'rake test' – Bjoernsen
Для Rails 4.2' rake test: all' устарел и будет удален в Rails 5. Но 'rake test' теперь работает точно так же. – Bjoernsen