Запустите все тесты моделей, используя задачу rake
Попытка использовать грабли для запуска только тестов в каталоге test/models. Используя минитест.
У меня есть грабли, которые будут запускать все тесты
require "rake/testtask"
Rake::TestTask.new(:test => "db:test:prepare") do |t|
t.libs << "test"
t.pattern = "test/**/*_test.rb"
end
task :default => :test
Затем запуск rake достигает значения по умолчанию и запускает все тесты. Я хочу написать вторую задачу rake, которая будет запускать тесты только в каталоге моделей (test/models/).
Я играл с этой существующей TestTask, просто изменив
t.pattern = "test/**/*_test.rb"
в
t.pattern = "test/models/*_test.rb"
но, похоже, все еще запускаются все тесты... не только модели. Странный?
ВОПРОСЫ
Как я могу сделать это? Как мне нужно назвать второй TestTask, который будет запускать только модели, и как мне сказать rake, чтобы он запускал этот тест вместо default: test?
2 ответа
Шаблон, который вы ищете, это "test/models/**/*_test.rb". "**" также будет соответствовать подкаталогам.
Если вы используете minitest-rails, у вас есть много задач, добавленных для вас. Для запуска всех тестов модели выполните:
rake minitest:models
Чтобы увидеть все созданные для вас задачи, выполните:
rake -T
Как обычно, ответ был довольно прост. Просто немного покопался. Убедитесь, что у вас есть следующее в вашем application.rb (внутри модуля).
config.generators do |g|
g.fixture_replacement :factory_girl # if your using factory_girl
g.test_framework :mini_test, :spec => true, :fixture => false
end
Тогда у вас есть доступ к встроенным в мини-наборы команд. Тот, который я искал, так же прост
rake minitest:models
Booya!