ant - instalar junit eclipse
Cómo resolver "Causa: no se encontró la clase org.apache.tools.ant.taskdefs.optional.junit.JUnitTask" mientras se ejecutaba "ant test" (5)
Tengo una prueba llamada target y quiero hacer algunas pruebas.
Pongo aquí las partes importantes en build.xml . Incluye:
<property name=''lib.dir'' value=''lib'' />
<path id=''classpath''>
<fileset dir="${lib.dir}" includes="**/*.jar" />
</path>
Y he puesto el junit.jar y el ant-junit.jar (¿es un deber?) En el directorio lib .
Sin embargo, si corro
ant test
El error de salida es:
test:
BUILD FAILED
/home/xiaohan/EclipseWorkSpace/AntTest/build.xml:82: Problem: failed to create task or type junit
Cause: the class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask was not found.
This looks like one of Ant''s optional components.
Action: Check that the appropriate optional JAR exists in
-/usr/share/ant/lib
-/home/xiaohan/.ant/lib
-a directory added on the command line with the -lib argument
Do not panic, this is a common problem.
The commonest cause is a missing JAR.
This is not a bug; it is a configuration problem
Además, si pongo los dos archivos jar en / usr / share / ant / lib con el conjunto $ ANT_HOME, todavía no funciona.
Realmente gracias por cualquier consejo
Cuando ejecute las tareas de JUnit, debe asegurarse de que tanto la classpath
que se usó para las compilaciones como la ruta de los archivos junit se agreguen a la ruta de la clase.
Prefiero poner los tarros junit dentro de mi proyecto, para que otros no tengan que instalarlos en sus máquinas para que mi compilación funcione. Los instalaría en ${basedir}/antlib/junit
Utilizo ${basedir}/antlib
para almacenar todos los distintos ${basedir}/antlib
relacionados con la compilación de Ant, como los archivos Ant-Contrib, JaCoCo, Findbugs, etc. Dado que esto está dentro de mi proyecto, una verificación siempre incluirá estos archivos y la construcción funcionará para todo el mundo:
<classpath id="junit.path">
<fileset dir="${basedir}/antlib/junit"/>
</classpath>
Esto creará una ruta que contiene sus tarros JUnit. Ahora para compilar tus pruebas junit:
<javac dest="${target.dir}/test-classes"
src=${src.test.java}">
<classpath refid="javac.classpath"/> <!-- Your main build classpath -->
<classpath refid="junit.path"/> <!-- Your JUnit classpath -->
<classpath path="${main.destdir}"/> <!-- These the classes you''ve built-->
Tenga en cuenta que la colocación de los archivos JUnit en $ANT_HOME/lib
main no funciona porque depende de si <javac>
tiene el conjunto includeAntRuntime
o no. Siempre se recomienda encarecidamente no tener este conjunto para que su compilación sea más independiente de la plataforma.
También recuerde incluir ese junit.path
en su tarea <junit>
también.
El problema se resolvió en los sistemas basados en RHEL una vez que se instaló ant-junit:
$ sudo yum install ant-junit
En mi caso (usando Mint, basado en Debian)
sudo apt-get install ant-optional
Fue lo único que funcionó.
Estaba viendo este mensaje porque no había podido incluir el ant-junit.jar desde el Classpath de mi IDE, por ejemplo, en Eclipse> Haga clic con el botón derecho en su proyecto> Ejecutar como> Ejecutar configuraciones ..> Classpath (pestaña)> Asegúrese de que ant-junit .jar está ahí.
<property name=''lib.dir'' value=''lib'' />
<path id=''classpath''>
<fileset dir="${lib.dir}" includes="**/*.jar" />
</path>
Esto no tiene nada que ver con el classpath de Ant en sí. Es propiedades que puedes usar en tus tareas. Debe colocar los archivos jar en los directorios sugeridos o agregar el argumento de la línea de comandos.
Intenta ejecutarlo así:
ant -lib /path/to/the/ant-junit.jar/ test