vuelos una suspendidos solidos resueltos probabilidad pequeños para numero mayor introducción ingenieros importantes fosfato estadística estadistica ejercicios distribuciones distribucion desde descarga cortos capitulo aviones aeropuertos unit-testing ant build-automation

unit testing - una - Tarea condicional en la falla del ejecutivo en Ant



la descarga de solidos suspendidos desde una mina de fosfato (2)

Dos posibilidades

-1-
utiliza algún tipo de try / catch / finally para partes específicas de tu script
necesitas algún plugin Ant que proporcione esas características, fe =

Flaka
Anticonceptivo / Antílope

<trycatch> <try> <exec .../> </try> <catch> do your cleanup here and afterwards don''t forget to fail </fail message="......."/> </catch> optionally you may use a finally section also <finally> .. </finally> </trycatch>

-2-
use un buildlistener para todo el script (CONSTRUIR EXITOSO, CONSTRUIR FALLADO)

Kev Jackson tiene un buen ejemplo de un ejecutor-oyente en su presentación, = http://people.apache.org/~kevj/ossummit/extending-ant.html (las fuentes del ejecutor-oyente están incluidas en las diapositivas)

Puede iniciar tareas específicas según el resultado de la construcción después de que su construcción haya finalizado

<!-- taskcontainer --> <exec-listener onSuccess="true|false"> .. your stuff goes here .. </exec-listener>

Tengo algunas pruebas de unidad corriendo a través de Ant, y me gustaría poder ejecutar algún código de limpieza si las pruebas de la unidad fallan. Estaba buscando una especie de bloque "por fin", pero no tuve suerte para encontrar uno. He intentado usar errorproperty y if statements en tasks, pero ant solo acepta "true", "on" y "yes" como verdaderas propiedades. Una tarea ejecutada con éxito (al menos en Unix) devuelve 0, por lo que he tenido que construir un aparato ridículamente elaborado:

<project name="TestBuild" default="build" basedir="."> <target name="build" depends="truth,checkresult,cleanup" /> <target name="truth"> <echo message="Running Truth" /> <exec executable="false" errorproperty="testfailure"/> </target> <target name="checkresult"> <condition property="testfailed"> <not> <equals arg1="${testfailure}" arg2="0" /> </not> </condition> </target> <target name="cleanup" if="testfailed"> <echo message="cleanup" /> <fail /> </target>

¿Hay alguna manera más simple de hacer esto? Por un lado, esto requiere que las tareas se completen, lo que parece ridículo. También significa que tendré que llamar a ambos después de cada bloque de pruebas unitarias, porque obviamente no puedo configurar failonerror como lo haría normalmente. En general, es una solución hacky, poco elegante, y espero que alguien tenga una mejor.


Ant contrib tiene el concepto de try-catch-finally. Sin embargo, esto es finalmente para un bloque en particular, no para todo el guión.