2014-11-04 4 views
1

테스트 스위트가 통과 한 경우에만 Heroku에 배포 할 rake 스크립트를 작성하려면 어떻게해야합니까?Rake : 테스트 통과시 Heroku에 배포

나는 Minitest 테스트를 사용하고, 그리고 지금 내 Rakefile의 관련 부분은 다음과 같습니다

task :test do 
    $LOAD_PATH.unshift('tests') 
    Dir.glob('./tests/spec_*.rb').each { |file| require file} 
    Dir.glob('./tests/test_*.rb').each { |file| require file} 
end 

task :deploy do 
    sh "git push heroku master" 
end 

답변

1

minitests '테스트는 당신이에서 테스트를 호출 그래서 만약 레이크는 종료 코드 1을 반환 실패하는 경우 capistrano 작업을하고 스크립트를 종료 할 수있는 종료 코드를 확인하십시오.

namespace :deploy do 
    desc "Runs test before deploying, can't deploy unless they pass" 
    task :tests do 
    puts "--> Running tests, please wait ..." 
    unless system "RAILS_ENV=test bundle exec rake" 
     puts "Tests failed" 
     exit 1 
    else 
     puts "Tests passed" 
    end 
    end 
end