2012-02-28 3 views
6

rakeを実行してCCNetのビルドプロセスを自動化しています。私はそれを使用してIIS Expressを起動し、Nunitを実行してから、Nunitの終了後にサーバーをシャットダウンします。問題は、Nunitが失敗するたびにレイクが停止し、シャットダウン部分に到達しないことです。 Nunitが失敗した後、どうやってレーキを続け、Nunitが失敗したとCCNetに伝えるので、ビルドもできますか?失敗した後にレイクを続ける

+0

レーキはどのように停止しますか?例外はありますか?はいの場合 - それをキャッチします。 – knut

答えて

6

どのようにレーキからNUnitを実行しますか?あなたは "sh"を使っていますか?

"sh"を使用してシェルコマンドを実行し、結果を代行受信する方法です。使用:ccnetはそのビルドを知っているように、サーバーをシャットダウンした後、この昇給の例外を置く

私はただの結果(失敗または成功)を無視するように、空のブロックを使用

  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 

raise "NUnit failed" if nunitSuccessFlag == false 

代替に失敗しました上記リンクのように、上記のユーザーナットで述べたキャッチブロックを試してください。 Rake Task: error handling(保証ブロック内のサーバーをシャットダウン)

+0

うん、私はshを使っていた。ありがとう。 – DrSammyD

2

私はrakeはステータスがコマンドから返さ無視させるために、これを使用:

sh "the command || true" 

trueは常にshは常に成功を参照すること、エラーなしで終了します。

関連する問題