Я обрабатываю фоновые задания с помощью Resque. Моя модель выглядит так
class SomeClass
...
repo = Repo.find(params[:repo_id])
Resque.enqueue(ReopCleaner, repo.id)
...
end
class RepoCleaner
@queue = :repo_cleaner
def self.perform(repo_id)
puts "this must get printed in console"
repo = Repo.find(repo_id)
# some more action here
end
end
Теперь, чтобы протестировать синхронно, я добавил
Resque.inline = Rails.env.test?
в свой файл config / initializers / resque.rb
Это должно было вызвать встроенный метод #perform, не помещая его в очередь в Redis и без каких-либо Resque обратные вызовы как Rails.env.test? возвращает истину в тестовой среде.
Но
"this must get printed in console"
никогда не печатается во время тестирования. и мои тесты тоже не работают.
Есть ли какие-то конфигурации, которые я пропустил. В настоящее время я использую
resque (1.17.1)
resque_spec (0.7.0)
resque_unit (0.4.0)