2011-01-21 24 views
5

Tengo un directorio con un montón de pruebas JUnit en mi proyecto. Hasta ahora he usado un objetivo diferente para cada prueba unitaria. Por ejemplo:Ejecutar todas las pruebas unitarias con el generador de Ant

<target name="MyTest"> 
     <mkdir dir="${junit.output.dir}"/> 
     <junit fork="yes" printsummary="withOutAndErr"> 
      <formatter type="xml"/> 
      <test name="tests.MyTest" todir="${junit.output.dir}"/> 
      <classpath refid="MyProject.classpath"/> 
     </junit> 
    </target> 

Este método requiere que cambie el archivo de construcción cada vez que agregue una prueba de Unidad.
Quiero poder ejecutar todas las pruebas de unidad en el proyecto con un único objetivo de generador de Ant.
¿Es posible hacer?

Respuesta

9

Sí que es, usted tiene que mirar en la etiqueta de conjunto de archivos, por ejemplo:

<junit printsummary="yes" haltonfailure="yes"> 
    <classpath> 
    <pathelement location="${build.tests}"/> 
    <pathelement path="${MyProject.classpath}"/> 
    </classpath> 

    <formatter type="xml"/> 

    <batchtest fork="yes" todir="${reports.tests}"> 
    <fileset dir="${src.tests}"> 
     <include name="**/*Test*.java"/> 
     <exclude name="**/AllTests.java"/> 
    </fileset> 
    </batchtest> 
</junit> 

La parte importante es el uso de un conjunto de archivos y patrón global/comodín para coincidir con los nombres de las pruebas. documentos completos en la tarea JUnit con ejemplos aquí:

http://ant.apache.org/manual/Tasks/junit.html

3

Sí! Lo hacemos usando una prueba por lotes de comando ant. Se parece a esto:

 <batchtest todir="${junit.report.dir}"> 
      <fileset dir="${basedir}\test\unit"> 
       <include name="**/*Test.java" /> 
      </fileset> 
     </batchtest> 

Google él, debe ordenar que fuera

Cuestiones relacionadas