2012-02-28 91 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总能看到成功。