Как я могу узнать, что задача rcov провалилась подзадача? - PullRequest
3 голосов
/ 26 мая 2011

У меня есть эта задача:

task :all => ['foo', 'bar', 'announce_success']

Если foo и bar не вызывают исключения, то происходит announce_success.Как мне выполнить конкретную задачу или блок кода, если они делают возбуждают исключения?

Ответы [ 2 ]

1 голос
/ 10 июня 2011

То, как вы определили свои задачи, приведет к выходу rake, как только одна из зависимостей выйдет из строя / вызовет исключение.Это основная функциональность rake.

Один из способов обойти это - сделать что-то вроде

task :all do
 task :tmp => ['foo','bar']
 begin 
   Rake::Task[:tmp].invoke
 rescue
  #do something with the exception
 end
end
1 голос
/ 30 мая 2011

К сожалению, это идет против зерна Рейка.

В Ruby есть хук at_exit, к которому можно добавить блок кода, если вы хотите выполнить небольшую очистку после завершения Rake.Вы можете комбинировать rake-tasks и at_exit hook следующим образом:

  task :cleanup do
    at_exit {
      # cleanup code here
    }
  end 

Просто убедитесь, что :cleanup выполняется в начале списка зависимостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...