2017-04-13 11 views
0

シェフのレシピに以下のスニペットがあります。シェフ||レスキューブロックは例外の場合には機能しません

begin 
    execute 'run_tests' do 
     command comand_string_to_run_nUnint 
     user "user" 
     password passkey 
    end 
ensure  
    execute 'upload_report' do 
     command uplaod 
     user "user" 
     password passkey 
    end 
end 

問題は報告書が渡されたすべての試験の場合には正常にアップロードされていることですが、テストケースのいずれかに障害がある場合に、アップロードに失敗しました。

すべてのケースでレポートをアップロードする方法を確認します。

例外を処理する別の方法はありますか?

ps:Nexusというアーティファクトリポジトリにアップロードしています。

答えて

0

execute[run_tests]リソースにはignore_failure trueを使用できます。この方法では、たとえこのコマンドがエラーコードで終了しても、シェフはレシピを実行し続けます。

execute 'run_tests' do 
    ignore_failure true 
    command comand_string_to_run_nUnint 
    user "user" 
    password passkey 
end 

別の可能性はexecute[run_tests]リソースに対するreturnsプロパティを使用することです。 "comand_string_to_run_nUnint"がゼロ以外のコードで終了した場合には、039以外のコード(たとえば2)をreturnsプロパティに追加できます。このようにして、シェフはすべてが大丈夫だと思ってレシピを実行し続けます。

execute 'run_tests' do 
    returns [0, 2] 
    command comand_string_to_run_nUnint 
    user "user" 
    password passkey 
end 
関連する問題