2012-02-28 11 views
6

Estoy ejecutando rake para automatizar mi proceso de compilación dentro de CCNet. Lo uso para iniciar IIS Express, luego ejecuto Nunit y luego apago el servidor después de que Nunit haya terminado. El problema es que cada vez que Nunit falla, el rake se detiene y nunca llega a la parte de apagado. ¿Cómo puedo continuar un rastrillo después de que Nunit ha fallado, y todavía le digo a CCNet que Nunit ha fallado, y por lo tanto, también lo ha hecho la compilación?Continuar Rastrillo tras error

+0

¿Cómo se detiene el rake? ¿Hay una excepción? Si es así, tómalo. – knut

Respuesta

6

¿Cómo ejecutas NUnit desde rake? ¿Estás usando "sh"?

Así es como usa "sh" para ejecutar el comando de shell e interceptar el resultado.

sólo tiene que utilizar bloque vacío para ignorar cualquier resultado (fallado o éxito)

  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 

poner esta excepción aumento después de apagar el servidor para CCNet sabe que la acumulación no

raise "NUnit failed" if nunitSuccessFlag == false 

alternativa: utilización intente capturar bloque como se indica por usuario knut arriba como se muestra en este enlace: Rake Task: error handling (apague el servidor en el bloque de seguridad)

+0

Sí, estaba usando sh. Gracias. – DrSammyD

2

que utiliza esto para hacer rake ignoran el estado devuelto desde el comando:

sh "the command || true" 

true siempre termina sin un error, por lo que siempre sh ver un éxito.