Professional Documents
Culture Documents
Pasos de instalación
<modificationset quietperiod="10">
<svn localworkingcopy="${src.java}"/>
</modificationset>
<!-- Nos indica donde esta el directorio ant y el build.xml sobre el que se va a apoyar
la integracion ademas de poder configurar el numero de segundos por ciclo de integracion en
este caso 60 segundos -->
<schedule interval="60">
<ant antscript=".\apache-ant-1.6.5\bin\ant.bat"
buildfile="kedrosutil.xml" target="build"
uselogger="true" usedebug="false"/>
</schedule>
<!-- Muy importante es donde guarda los resultados de las pruebas en xml la consola
de CC posee unas vistas de xsl que nos resumen la informacion son muy utiles -->
<log>
<merge dir="C:\work\apps\cruisecontrol-bin-
2.4.1\projects\kedrosutil\target\testresults"/>
</log>
<!-- en este tag podemos indicarle la forma de publicar los resultados podemos incluso
configurarlo para que nos lo mande por correo no me parece muy practico -->
<publishers>
<onsuccess>
<artifactspublisher dest="artifacts/${project.name}"
file="projects/${project.name}/target/${project.name}.jar"/>
</onsuccess>
</publishers>
</project>
</cruisecontrol>
Después estaría el fichero de configuración de cada proyecto kedrosutils.xml. No he
podido incluir los comentarios xml por problemas con el juego de caracteres pese a
tener el doctype. Se deberán corregir sobre este fichero los path siempre que no sean los
de mi proyecto.
<?xml version="1.0" encoding="UTF-8"?>
<project name="kedrosutil" default="build" >
<!-- apunta al directorio que contiene los fuentes java -->
<property name="fuentejava" value="C:\desarrollo\work_eclipse\Utils\src" />
<property name="destino" value="C:\work\apps\cruisecontrol-bin-2.4.1\projects\" />
<property name="common" value="C:\work\server\jakarta-tomcat-5.0.28\common\lib\" />
<!-- Muy importante darle el mismo nombre que el fichero xml asi como el nombre de proyecto que
le pusimos en el config.xml -->
<property name="nombreProyecto" value="kedrosutil" />
<!-- Se debe apuntar al directorio de dentro de la carpeta de work donde tengo el CC que contiene
los test java -->
<property name="tests.dir" value="C:\work\apps\cruisecontrol-bin-
2.4.1\projects\${nombreProyecto}\target\classes\es\satec\kedros\junit\test" />
<!-- Se debe apuntar al directorio del workspace del eclipse que contiene los test java -->
<property name="test.src" value="C:\desarrollo\work_eclipse\Utils\src\es\satec\kedros\junit\test" />
<!-- Estos 3 son así siempre -->
<property name="classes" value="./projects/${nombreProyecto}/target/classes" />
<property name="testresults" value="./projects/${nombreProyecto}/target/testresults"/>
<property name="test-classes" value="./projects/${nombreProyecto}/target/test-classes"/>
<target name="build" >
<!— Es conveniente esta instrucción ya que de lo contrario puede bloquear el SVN
<exec executable="svn">
<arg line="cleanup" />
</exec>
<!—Esta instrucción updatea del repositorio SVN la ultima versión en mi caso he creado un
proyecto Kedros sobre el que tengo en el eclipse
<exec executable="svn">
<arg line="co http://127.0.0.1/kedros/ ." />
</exec>
<!—Estas clases configuran el classpath de lo que sería un deploy de un proyecto web además de
algunas api’s para pruebas es opcional en este caso. Ha no se que tengamos jar externos en nuestro
proyecto como p.e log4j.jar
<path id="compile.classpath">
<pathelement path ="C:\work\tester\jameleon-test-suite\lib\"/>
<pathelement path ="c:\j2sdk1.4.2_10\bin"/>
<pathelement path ="C:\work\server\jakarta-tomcat-
5.0.28\server\lib\catalina-ant.jar"/>
<pathelement path ="${fuente}/WEB-INF/lib/commons-beanutils.jar"/>
<pathelement path ="${fuente}/WEB-INF/lib/commons-digester.jar"/>
<pathelement path ="${fuente}/WEB-INF/lib/commons-validator.jar"/>
<pathelement path ="${fuente}/WEB-INF/lib/commons-collections.jar"/>
<pathelement path ="${fuente}/WEB-INF/lib/commons-logging.jar"/>
<pathelement path ="${fuente}/WEB-INF/lib/log4j-1.2.8.jar"/>
<pathelement path ="${fuente}/WEB-INF/lib/struts.jar"/>
<pathelement path ="${fuente}/WEB-INF/lib/displaytag-1.1.jar"/>
<pathelement path ="${fuente}/WEB-INF/lib/htgui.jar"/>
<pathelement path ="${common}\javax.servlet.jar"/>
<pathelement path ="${common}\activation.jar"/>
<pathelement path ="${common}\mail.jar"/>
<pathelement path ="${common}\javax.servlet.jsp.jar"/>
<pathelement path ="${classpath.external}"/>
<pathelement path ="${classpath}"/>
<pathelement path ="${destino}${nombreProyecto}"/>
</path>
<!—classpath de la junit sería classpath de testeo en esta ocasión he utilizado la 3.7 ,
existe una nueva versión que aún no he probado y que cambia mucho solo funciona con este
jar
<path id="tests-classpath">
<pathelement path ="C:\work\apps\cruisecontrol-bin-2.4.1\lib\junit.jar"/>
</path>
<!—ejecuta solo los testcases que previamente hemos separado para que sea más rapido el
ciclo
</target>
</project>
Conclusiones
La prueba final.
He incluido en el java Project con el que he hecho las clases de fechas una clase más de
pruebas para que se vea que el cruise control lanza todas las junit del proyecto.
Añado 2 capturas de pantalla más subsanando el error. Para demostrar que funciona.
Nota.- Los logs de cruisecontrol estan en la carpeta /cruisecontrol../logs. Aquí podremos
ver secciones que no son lanzadas por consola.
Nota.- Como regla general, evita los directorios con espacios cuando uses versiones
Windows de herramientas Unix. Casi siempre deberían funcionar sin problemas, yo lo
he hecho por probar y funciona, pero no es recomendable.
Añado una libreria al ant del cruisecontrol para poder arrancarlo y pararlo a mi
antojo.set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\catalina-ant.jar