Download http://ant.apache.org/ Ejemplo simple

Document related concepts
no text concepts found
Transcript
Creación de un ejecutable
Ejecutables !jar", proyectos !ant"
& pruebas unitarias !jUnit"
javac algo/HolaMundo.java
echo “Main#Class: algo.HolaMundo” > manifesto
jar cmf manifesto mundo.jar algo
Progra OO 2009
Mecatrónica
java #jar mundo.jar
Elisa
http://ant.apache.org/
herramientas de compilación de proyectos
estructura d! proyecto expresado en XML
un archivo por proyecto, por lo menos una meta por
proyecto
metas están compuestas por tareas
sudo apt#get install ant
Ejemplo simple
package algo;
public class HolaMundo $
public static void main!String%& args" $
System.out.println!"Hola, mundo."";
'
'
http://ant.apache.org/manual/tutorial"He#oWorldWithAnt.html
<project>
[email protected]#entry:~/temp( ant compilar
Buildfile: build.xml
<target name="limpiar">
<delete dir="clases"/>
</target>
compilar:
%javac& Compiling 1 source file to /home/elisa/temp/clases
<target name="compilar">
<mkdir dir="clases"/>
[email protected]#entry:~/temp( ant jar
BUILD SUCCESSFUL
Buildfile: build.xml
Total time: 0 seconds
<javac srcdir="codigo" destdir="clases"/>
</target>
<target name="jar">
jar:
%mkdir& Created dir: /home/elisa/temp/jars
%jar& Building jar: /home/elisa/temp/jars/mundo.jar
<mkdir dir="jars"/>
<jar destfile="jars/mundo.jar" basedir="clases">
<manifest>
<attribute name="Main#Class" value="algo.HolaMundo"/>
[email protected]#entry:~/temp( ant ejecuta
BUILD SUCCESSFUL
Buildfile: build.xml
Total time: 0 seconds
</manifest>
</jar>
ejecuta:
%java& Hola, mundo.
</target>
<target name="ejecuta">
<java jar="jars/mundo.jar" fork="true"/>
</target>
BUILD SUCCESSFUL
Total time: 0 seconds
build.xml
</project>
http://www.junit.org/
jUnit API
librerías para pruebas unitarias
Paquete
Propósito
permite realizar la ejecución de clases para evaluar si se comporta
como deb!
org.juni(
parte básica
comparación de clases contra especificaciones
org.junit.runner
ejecutar y analizar múltiples pruebas
pruebas d! regresió!: después de modificaciones al código
org.junit.runner.manipulatio'
filtrar y ordenar pruebas
org.junit.runner.notificatio'
información sobre una corrida
org.junit.runners
ejecutadores
$isualización de resultados %runners&
NetBeans y Eclipse cuentan co' plug"ins
sudo apt#get install junit
Ejemplo simple
public class Calculadora $
static public int sumar!int a, int b" $
return !a + b";
'
static public int restar!int a, int b" $
return !a # b";
'
'
Prueba unitaria
import junit.framework.*;
public class PruebaCalculadora extends TestCase $
public void testSumar!" $
int a = 3;
int b = 2;
int resultado= Calculadora.sumar!a, b";
assertEquals!resultado, a + b";
'
...
'
http://www.jaredrichardson.net/articles/junit"tutorial.html
Compilación & ejecución
Integración en ant
<junit printsummary="yes" haltonfailure="yes" showoutput="yes" >
<classpath>
<pathelement path="($compilar'"/>
javac #cp /usr/share/java/junit.jar:. PruebaCalculadora.java
</classpath>
<batchtest fork="yes" todir="($reportes'/salida/">
<formatter type="xml"/>
java #cp /usr/share/java/junit.jar:. junit.textui.TestRunner PruebaCalculadora
<fileset dir="($codigo'">
<include name="**/*Prueba*.java"/>
</fileset>
La salida de jUnit indica el número de pruebas aprobadas, el
número de pruebas reprobadas y el tiempo total, entre otras cosas.
</batchtest>
</junit>
Tarea para la semana siguiente
Un archivo build.xml para su proyecto
Un paquet! .jar ejecutabl# del estado actual de la
implementació'
Un mínimo de dos clases d! pruebas unitarias para el
proyecto, con un mínimo de tres pruebas cada una %no es
necesario que la implementación las apruebe todavía&
Todo incluido en el sitio web del proyecto