[ANT/PHP] Buildproces stoppen a.d.h.v. errorlevel van batch

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Tweakers,

Ik wil graag dat mijn ANT-buildfile stopt na het uitvoeren van een bepaalde taak wanneer deze een error oplevert. Om preciezer te zijn heb ik een CakePHP testshell die 0 of 1 retourneert aan de console wanneer alle testen slagen of niet. 0 = alles is O.K. , 1 = er zijn 1 of meerdere testen gefaald. Ik weet dat deze errorcode klopt omdat ik na het uitvoeren van de batch een "echo %errorlevel%" kan uitvoeren om de waarde te achterhalen. Deze errorlevels komen overeen met of de tests slagen of niet.

Het probleem is nu dat ik wil dat ANT stopt met het uitvoeren van de buildfile aan de hand van deze errorcode. Dit zou standaard in ANT moeten zitten en dit heb ik als volgt geimplementeerd:

HTML:
1
2
3
4
5
6
7
8
    <target name="tests" depends="init">
        <echo>Running all application tests ... </echo>
        <exec dir="." executable="cake/console/cake.bat" failonerror="true">
            <env key="path" path="C:\xampplite\php"/>
            <arg line="testsuite app all" />
        </exec>
     <echo>Done, application tests are O.K.</echo>
    </target>


Als ik de buildfile run dan zie ik de output van de console en zie dat de tests slagen of falen. ANT doet er echter niets op uit, ook niet aan de hand van "failonerror".

Iemand ervaring hiermee of tips?

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Je bat voert waarschijnlijk PHP uit waarbij PHP een waarde teruggeeft. Heeft je BAT script ook een return waarde, of return je niks in dat BAT script? Op die manier kan ANT dan niet controleren of er een error is opgetreden.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is zeg maar een CakePHP shell die de waarde retourneert met exit($code) . Het commando dat ik aanroep ( "cake testsuite app all" ) is een shell dat via PHP CLI werkt. Ik kan de errorlevel wel uitlezen door "echo %errorlevel%" te gebruiken na het commando.