2010-01-10 3 views
1

rake 태스크를 테스트하려고하지 않습니다. 나는이 테스트를 실행하면 나는 오류 다음받을 이메일 템플릿 등테스트 프로그램에서 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 

을 테스트하기 위해 이메일을 보내는 테스트 프로그램 (실제 이메일 예)가 있습니다. 내가 별도로 레이크 작업을 실행하는 경우

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

그러나 그것은 lib에 파일을로드하지 않습니다 좋은

rake email:run 

답변

3

테스트 환경을 사용할 수 있습니다. 다음과 같이 수동으로 파일 상단에로드해야합니다.

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 
+1

레일 5에서 Rails.root 사용 – juliangonzalez

관련 문제