Каждый раз, когда я хочу запустить тест Rake, вызывается задача db: test: prepare вызывается и восстанавливает базу данных тестовой среды из schema.rb и миграции. То, что я хотел бы достичь, - отключить вызов db: test: подготовить, когда я хочу протестировать приложение Rails. Можно ли без изменения Rails gem?Как предотвратить тест рейка для вызова задачи db: test: подготовить
10
A
ответ
13
Вот решение, что я видел вокруг:
В вашем Rakefile:
Rake::TaskManager.class_eval do
def remove_task(task_name)
@tasks.delete(task_name.to_s)
end
end
В lib/tasks/db/test.rake
:
Rake.application.remove_task 'db:test:prepare'
namespace :db do
namespace :test do
task :prepare do |t|
# rewrite the task to not do anything you don't want
end
end
end
5
Существует плагин, который позаботится об этом для вас: override_rake_task. Вот краткий пример использования:
namespace :db do
namespace :test do
override_task :prepare do; end
end
end
0
Для некоторых более старая версия рельсов - вы можете разместить Rake::Task['db:test:prepare'].clear
в конце вашего файла рейка
Смежные вопросы
- 1. Выполнение db: test: подготовить из другой задачи рейка
- 2. Как предотвратить «тест рейка» при удалении данных «rake db: seed»?
- 3. rake db: test: подготовить не устанавливает тест databse
- 4. Spork and db: test: подготовить
- 5. Выполнение задачи рейка после `rake test`
- 6. Отсутствуют задачи рейка?
- 7. рубин на рельсах 4: не удалось найти таблицу «имя_таблицы» даже после рейка db: test: подготовить
- 8. Как найти исходный файл для задачи рейка?
- 9. Задача рейка зависит от другой задачи рейка
- 10. Переопределить тест рейка: unit runner
- 11. Как запустить все задачи рейка?
- 12. Рельсы в ожидании миграции в rake db: test: подготовить
- 13. Каждый тест RSpec требует рейка db: тест: подготовка или эквивалент с использованием Rails 4.2.5
- 14. Тест Nodeunit зависает для вызова async db ORMnomnom
- 15. Запуск задачи рейка с формой
- 16. rake db: test: подготовить ошибку из-за ошибки PG
- 17. Развертывание задачи рейка на сервер
- 18. Доступны ли плагины для задачи рейка?
- 19. Выполняет ли Rails инициализаторы для задачи рейка?
- 20. Запустить sidekiq из задачи рейка
- 21. Правило рейка с зависимостью задачи
- 22. Не удалось обнаружить задачи рейка
- 23. Как получить PID текущей задачи рейка?
- 24. Как использовать rake: db: подготовить с mssqlserver?
- 25. Выполнение задачи рейка из файла войны
- 26. Как проверить ход рейка db: seed
- 27. Как закодировать задачу рейка для запуска задачи BackgrounDRb?
- 28. Mocking vs. Test DB?
- 29. "bundle exec rake db: test: подготовить" vs "bundle exec rake db: populate"
- 30. CruiseControl.rb: выполнение задачи круиз-рейка с текущей версией как параметр
Мне это нравится. При этом вам не нужно устанавливать какой-либо плагин, и он работает хорошо. Однако, что, если я хочу использовать метод подготовки в будущем? Можно ли сохранить его только для удаления из очереди запуска Rake? –
В этом случае, я думаю, вам придется использовать этот метод для перезаписи 'test: units',' test: functionals' и 'test: integration', чтобы они не наследовали от' db: test: prepare 'задача. – mckeed
На самом деле, я не проверял это, но вы могли бы, вероятно, изменить 'remove_task' к: определение функции rename_task (TASK_NAME, new_task_name) @tasks [new_task_name] = @ tasks.delete (task_name) end' You 'все равно придется переписать 'db: test: prepare', потому что тестовые задачи все равно будут его запускать. – mckeed