Я создаю набор тестов интеграции, и есть одна бит логики, для которой мне нужна чистая база данных. Как запустить задачу db:test:purge внутри одного из моих тестов?
Я использую: ruby 1.9.2, rails 3.0.9, rspec 2.6
Ответ 1
Вы можете вызвать задачи Rake следующим образом:
require 'rake'
Rake::Task[name].invoke
В этом случае это приведет к следующему коду:
require 'rake'
Rake::Task['db:test:purge'].invoke
Ответ 2
Утвержденный ответ не сработал у меня, когда мне нужно было выполнить свою собственную задачу рейка
Здесь мое решение
Вставьте верхнюю часть спецификационного файла
require 'rake'
Поместите эти строки, где вам нужно выполнить свою собственную команду rake, например. rake update_datastrong > из файла example.rake
load File.expand_path("../../../lib/tasks/example.rake", __FILE__)
# make sure you set correct relative path
Rake::Task.define_task(:environment)
Rake::Task["update_data"].invoke