2012-02-28 92 views
6

我正在運行耙子以使CCNet內部的構建過程自動化。我用它啓動IIS Express,然後運行Nunit,然後在Nunit完成後關閉服務器。問題是,每當Nunit失敗時,耙子就會停止,並且永遠不會進入關閉部分。在Nunit失敗之後,我該如何繼續耙子,並且仍然告訴CCNet Nunit已經失敗了,因此構建呢?在失敗後繼續耙子

+0

耙子如何停止?是否有例外?如果是 - 抓住它。 – knut 2012-02-28 20:12:26

回答

6

如何從rake運行NUnit?你在用「sh」嗎?

這就是你如何使用「sh」來執行shell命令,並攔截結果。

我只是用空塊忽略任何結果(失敗或成功)

  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 

替代關停服務器後:使用請嘗試按照以上用戶Knut所述的catch塊,如以下鏈接所示: Rake Task: error handling(關閉服務器中的確保塊)

+0

是的,我正在使用sh。謝謝。 – DrSammyD 2012-02-29 15:04:04

2

我用這個做rake忽略命令返回的狀態:

sh "the command || true" 

true始終沒有離開一個錯誤,使得sh總能看到成功。