2012-03-19 20 views
5

Estoy intentando ejecutar la prueba de Junit desde mi archivo ant build.xml. Leí here que puede usar un archivo junit.jar en lugar de utilizar el .jar que se encuentra en el directorio ant.home/lib. Esto es lo que quiero hacer ya que nuestra configuración de autobuild de Jenkins no tiene un archivo junit.jar en su directorio ant lib.Junit ant task - JUnitTask no se encontró

Incluso con el proyecto más simple, siempre obtengo este error que dice que JUnitTask no se encontró. Si miras mi archivo build.xml, está claramente incluido y se usa en la tarea junit.

build.xml:

<project default="all"> 
    <property name="TALK" value="false" /> 

    <path id="classpath.base"> 
    </path> 
    <path id="classpath.test"> 
     <fileset dir="." includes="**/*.jar" /> 
    </path> 

    <target name="compile-test"> 
     <javac srcdir="src" verbose="${TALK}"> 
      <classpath refid="classpath.test" /> 
     </javac> 
    </target> 

    <target name="test" depends="compile-test"> 
     <junit> 
      <classpath refid="classpath.test" /> 
      <formatter type="brief" usefile="false" /> 
      <test name="TestClass" /> 
     </junit> 
    </target> 

    <target name="all" depends="test" /> 
</project> 

El pequeño ejemplo que hice para probar las cosas se parece a esto:

image

EDIT: actualiza basándose en respuesta

Respuesta

8

El junit- La documentación es un poco escasa.
Si tiene hormiguero junit.jar fuera ANT_HOME/lib es necesario definir la tarea usted mismo (el <taskdef/> es desde el FAQ, que también es un poco mal, porque le dice a utilizar class="...", que no existe como un atributo a <taskdef />):

<path id="classpath.test"> 
    <fileset dir="." includes="*junit.jar" /> 
</path> 

<taskdef name="junit" 
    classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"> 
    <classpath refid="classpath.test"/> 
</taskdef> 

Esto se puede utilizar para comprobar la ruta:

<pathconvert property="testoutput" refid="classpath.test"/> 
<echo>Path = ${testoutput}</echo> 

Documentación:
junit task.


información adicional se puede encontrar en this chat transcript

+0

no funcionó. – David

+0

@David ¿tienes ant-junit.jar int ant_home/lib? Necesitas esta lib, también en algún lado. Consulte los documentos: http://ant.apache.org/manual/Tasks/junit.html – oers

+0

No, no, pero si lee la línea, dice: 2. No ponga ANT_HOME/lib, y en su lugar incluya su ubicaciones en su variable de entorno CLASSPATH. – David

0

Mi solución es crear una variable CLASSPATH Jenkins Configuración del sistema y añada el camino de hormigas junit.jar

Cuestiones relacionadas