Как вызвать грабли из тестовой программы - PullRequest
1 голос
/ 10 января 2010

Я не пытаюсь тестировать грабли. У меня есть тестовая программа, которая отправляет электронные письма (реальные письма да) для проверки шаблонов электронной почты и т. Д.

class EmailTemplatesTest < ActiveSupport::TestCase    
  context 'send_password_info' do
    setup do
      Emailtb.send_password_info(user)
      Rake::Task['email:run'].invoke # this actually delivers email
    end
    should 'have one emailtb' do
      assert_equal 1, Emailtb.count
    end
  end    
end

Когда я запускаю этот тест, я получаю следующую ошибку.

RuntimeError: Don't know how to build task 'email:run'

Однако, если я запускаю задачу rake отдельно, она работает нормально

  rake email:run

1 Ответ

3 голосов
/ 10 января 2010

Тестовая среда не загружает файлы в lib. Вы должны вручную загрузить их вверху файла, например:

require 'rake'
load File.join(RAILS_ROOT, 'lib', 'tasks', 'my_task.rake')  
class EmailTemplatesTest < ActiveSupport::TestCase    
  context 'send_password_info' do
    setup do
      Emailtb.send_password_info(user)
      Rake::Task['email:run'].invoke # this actually delivers email
    end
    should 'have one emailtb' do
      assert_equal 1, Emailtb.count
    end
  end    
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...