Bienvenido(a), Visitante. Favor de ingresar o registrarse.
Diciembre 05, 2008, 10:48:36
Inicio Ayuda Buscar Ingresar Registrarse
Noticias: Foro de Java, C++ y más.

Empieza una nueva comunidad de programación: Oneble ... es lo que tu quieras que sea

+  Foros Java y C/Linux
|-+  Herramientas y librerías
| |-+  Maven y Ant
| | |-+  problema ant y junit...
« anterior próximo »
Páginas: [1] Enviar tema Imprimir
Autor Tema: problema ant y junit...  (Leído 2092 veces)
user05
Newbie
*
Mensajes: 38


Ver Perfil


« en: Mayo 14, 2008, 06:26:04 »

Tengo el siguiente archivo build.xml
<project name="algoritmo" default="compile" basedir=".">
   // hay mas codigo antes pero no lo escribi para q no sea extenso
<target name="TanqueNaftaTest">
    <mkdir dir="${tests.dir}"/>
    <junit fork="yes" printsummary="withOutAndErr">
            <formatter type="xml"/>
            <test name="pruebas.TanqueNaftaTest" todir="${tests.dir}"/>
            <classpath refid="test.classpath"/>
    </junit>
</target>
</project>

Y siempre que hago ant TanqueNaftaTest me dice:
[junit] Running pruebas.TanqueNaftaTest
[junit] Tests run: 1 , Failures: 0, Erros 1
[junit] Test pruebas.TanqueNaftaTest FAILED           (esta prueba ejecutada desde el eclipse da bien)

y en el archivo donde me genera los errores me dice:
<error message="pruebas.TanqueNaftaTest" type="java.lang.ClassNotFoundException">java.lang.ClassNotFoundException: pruebas.TanqueNaftaTest
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
</error>

como puedo solucionar esto?
Desde ya muchas gracias. (y de paso grx! por las rtas del topico anterior ahora si anda)
En línea
chuidiang
Administrator
Hero Member
*****
Mensajes: 1985



Ver Perfil WWW Email
« Respuesta #1 en: Mayo 14, 2008, 08:14:29 »

Hola:

Revisa el classpath. da la impresión de que no encuetnra la clase pruebas.TanqueNaftaTest

Se bueno.
En línea

user05
Newbie
*
Mensajes: 38


Ver Perfil
« Respuesta #2 en: Mayo 14, 2008, 02:44:00 »

pongo todo el .xml porque sigue sin andar Triste  (la clase TanqueNafta esta en build/clases/pruebas)

<project name="algoritmo" default="compile" basedir=".">

<property name="build.dir" value="build/clases"/>
<property name="pruebas.dir" value="build/clases/pruebas"/>
<property name="tests.dir" value="build/clases/tests"/>
<property name="src.dir" value="src/"/>
<property name="lib" value="lib/" />


<path id="test.classpath">
  <pathelement location="${clases}"/>
  <pathelement location="C:\junit-4.4.jar"/>
  <fileset dir="${lib}">
    <include name="**/*.jar"/>
  </fileset>
</path>

<target name="compile">
   <mkdir dir="${build.dir}"/>
   <javac destdir="${build.dir}"  debug="true" deprecation="false" optimize="false" failonerror="true">
            <src path="${src.dir}"/>
         <classpath refid="test.classpath"/>
    </javac>
</target>

<target name="TanqueNaftaTest">
    <mkdir dir="${tests.dir}"/>
    <junit fork="yes" printsummary="withOutAndErr">
            <formatter type="xml"/>
            <test name="pruebas.TanqueNaftaTest" todir="${tests.dir}"/>
            <classpath refid="test.classpath"/>
    </junit>
</target>   
</project>
En línea
chuidiang
Administrator
Hero Member
*****
Mensajes: 1985



Ver Perfil WWW Email
« Respuesta #3 en: Mayo 14, 2008, 02:51:57 »

Hola:

Revisa los path de búsqueda de clases.

¿Dónde está declarada la variable clases de

<pathelement location="${clases}"/>

?.

Tampoco veo muy claro si "pruebas" es un package (por lo de <test name="pruebas.TanqueNaftaTest") o un directorio (por lo de name="pruebas.dir" value="build/clases/pruebas"/>) o si tienes dos pruebas/pruebas. El caso es que si es un package, no debe aparecer en el pruebas.dir y si es un directorio, no debe aparecer como parte del nombre de la clase. El si es directorio o pakage lo decide la clase TanqueNaftaTest, si tiene o no package pruebas al principio.

Se bueno.
En línea

user05
Newbie
*
Mensajes: 38


Ver Perfil
« Respuesta #4 en: Mayo 14, 2008, 03:02:03 »

finalment anduvo..asi quedo mi build.xml

<project name="algoritmo" default="compile" basedir=".">

<property name="build.dir" value="build/clases"/>
<property name="tests.dir" value="build/clases/tests"/>
<property name="src.dir" value="src/"/>
<property name="lib" value="lib/" />

<path id="test.classpath">
  <pathelement location="C:\junit-4.4.jar"/>
  <fileset dir="${lib}">
    <include name="**/*.jar"/>
  </fileset>
</path>

<target name="compile">
   <mkdir dir="${build.dir}"/>
   <javac destdir="${build.dir}"  debug="true" deprecation="false" optimize="false" failonerror="true">
            <src path="${src.dir}"/>
         <classpath refid="test.classpath"/>
    </javac>
</target>


<target name="TanqueNaftaTest">
    <mkdir dir="${tests.dir}"/>
    <junit fork="yes" printsummary="withOutAndErr">
            <formatter type="xml"/>
            <test name="pruebas.TanqueNaftaTest" todir="${tests.dir}"/>
            <classpath refid="test.classpath"/>
         <classpath>
<pathelement path="${build.dir}"/>
</classpath>
    </junit>
</target>   
</project>

te molesto con una duda mas...como hago para setear el junit de manera de no tener q tener esto:
<path id="test.classpath">
  <pathelement location="C:\junit-4.4.jar"/>
  <fileset dir="${lib}">
    <include name="**/*.jar"/>
  </fileset>
</path>


muchas graciassss
« Última modificación: Mayo 14, 2008, 03:12:55 por user05 » En línea
chuidiang
Administrator
Hero Member
*****
Mensajes: 1985



Ver Perfil WWW Email
« Respuesta #5 en: Mayo 14, 2008, 03:41:08 »

Supongo que tienes que ponerlo en algún sitio.

Una opción, aunque hay que ser cuidadoso, consiste en poner el junit.jar en el sitio que tienes instalado java, en ext/lib, que es donde se ponen jar externos a java que se usan habitualmente para que java los encuentre.

Digo que tienes que ser cuidadoso porque ese jar estará disponible para TODOS los programas java que corras en ese PC. Si otro programa java necesita o aporta su propia librería junit de otra versión, p uedes tener problemas.

Se bueno.
En línea

Páginas: [1] Enviar tema Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by MySQL Powered by PHP Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC XHTML 1.0 válido! CSS válido!