Продолжить рейк после сбоя - PullRequest
6 голосов
/ 28 февраля 2012

Я использую rake для автоматизации моего процесса сборки внутри CCNet.Я использую его для запуска IIS Express, затем запускаю Nunit, а затем выключаю сервер после завершения Nunit.Проблема в том, что каждый раз, когда Nunit выходит из строя, грабли останавливаются и никогда не доходят до выключенной части.Как мне продолжить грабли после сбоя Nunit, и при этом сказать CCNet, что сбой Nunit, и, следовательно, так же и сборка?

Ответы [ 2 ]

6 голосов
/ 29 февраля 2012

Как вы запускаете NUnit с граблей?Вы используете "sh"?

Вот как вы используете "sh", чтобы выполнить команду оболочки и перехватить результат.

Я просто использую пустой блок, чтобы игнорировать любой результат (неудачный или успешный))

            sh "your shell command" do |ok,res|
                #empty block to ignore any failed or success status
                #in your case set failed flag based on ok parameter
               nunitSuccessFlag=false #hardcoded for sample; must set true or false based on ok parameter
            end

поместите это исключение повышения после выключения сервера, чтобы ccnet знал, что сборка не удалась

    raise "NUnit failed" if nunitSuccessFlag == false

альтернатива: используйте блок try catch, как указано выше пользователем knut, как показано в этомссылка: Rake Task: обработка ошибок (завершение работы сервера в блоке обеспечения)

4 голосов
/ 20 июня 2015

Я использовал это, чтобы rake игнорировал статус, возвращаемый командой:

sh "the command || true"

true всегда завершается без ошибки, поэтому sh всегда видит успех.

...