2012-02-28 17 views
6

Używam prowizji, aby zautomatyzować proces tworzenia wewnątrz CCNet. Używam go do uruchomienia IIS Express, uruchomienia Nunit, a następnie wyłączenia serwera po zakończeniu Nunit. Problem polega na tym, że za każdym razem, gdy Nunit ulegnie awarii, grabie zatrzyma się i nigdy nie dotrze do części wyłączającej. Jak mogę kontynuować prowizję po niepowodzeniu Nunit, a mimo to powiedzieć CCNet, że Nunit się nie udało, a więc tak jest z kompilacją?Kontynuuj Rake po awarii

+0

Jak zatrzymuje się prowizja? Czy istnieje wyjątek? Jeśli tak, złap go. – knut

Odpowiedz

6

Jak uruchomić NUnit z prowizji? czy używasz "sh"?

W ten sposób używasz "sh" do wykonania polecenia powłoki i przechwytywania wyniku.

wystarczy użyć pusty blok ignorować żadnych rezultatów (nie powiodło się lub sukces)

  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 

umieścić ten wyjątek podbicia po wyłączeniu serwera tak ccnet wie, że build udało

raise "NUnit failed" if nunitSuccessFlag == false 

alternatywę: korzystanie spróbuj przechwycić blok zgodnie z opisem użytkownika knut powyżej, jak pokazano w tym łączu: Rake Task: error handling (zamknij serwer w bloku zapewniającym)

+0

Tak, użyłem sh. Dzięki. – DrSammyD

2

Kiedyś to zrobić rake zignorować stan zwracane przez komendę:

sh "the command || true" 

true zawsze wyjście bez błędu, co sh zawsze zobaczyć sukces.