Estoy tratando de ejecutar mis pruebas junit usando hormiga. Las pruebas se inician utilizando un conjunto de pruebas JUnit 4. Si ejecuto esto directamente desde Eclipse, las pruebas se completan sin error. Sin embargo, si lo ejecuto desde la hormiga, muchas de las pruebas fallan y este error se repite una y otra vez hasta que falla la tarea junit.
[junit] java.util.zip.ZipException: error al abrir el archivo zip [junit] en java.util.zip.ZipFile.open (Método nativo) [junit] en java.util.zip.ZipFile. (ZipFile.java:114) [junit] en java.util.zip.ZipFile. (ZipFile.java:131) [junit] en org.apache.tools.ant.AntClassLoader.getResourceURL (AntClassLoader.java:1028) [junit] en org.apache.tools.ant.AntClassLoader $ ResourceEnumeration.findNextResource (AntClassLoader.java:147) [junit] en org.apache.tools.ant.AntClassLoader $ ResourceEnumeration.nextElement (AntClassLoader.java:130) [junit] en org.apache.tools.ant.util.CollectionUtils $ CompoundEnumeration.nextElement (CollectionUtils.java:198) [junit] en sun.misc.CompoundEnumeration.nextElement (CompoundEnumeration.java:43) [junit] en org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.checkForkedPath (JUnitTask.java:1128) [junit] en org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeAsForked (JUnitTask.java:1013) [junit] en org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute (JUnitTask.java:834) [junit] en org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue (JUnitTask.java:1785) [junit] en org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute (JUnitTask.java:785) [junit] en org.apache.tools.ant.UnknownElement.execute (UnknownElement.java:288) [junit] en sun.reflect.GeneratedMethodAccessor1.invoke (Fuente desconocida) [junit] en sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) [junit] en java.lang.reflect.Method.invoke (Method.java:597) [junit] en org.apache.tools.ant.dispatch.DispatchUtils.execute (DispatchUtils.java:106) [junit] en org.apache.tools.ant.Task.perform (Task.java:348) [junit] en org.apache.tools.ant.Target.execute (Target.java:357) [junit] en org.apache.tools.ant.Target.performTasks (Target.java:385) [junit] en org.apache.tools.ant.Project.executeSortedTargets (Project.java:1337) [junit] en org.apache.tools.ant.Project.executeTarget (Project.java:1306) [junit] en org.apache.tools.ant.helper.DefaultExecutor.executeTargets (DefaultExecutor.java:41) [junit] en org.apache.tools.ant.Project.executeTargets (Project.java:1189) [junit] en org.apache.tools.ant.Main.runBuild (Main.java:758) [junit] en org.apache.tools.ant.Main.startAnt (Main.java:217) [junit] en org.apache.tools.ant.launch.Launcher.run (Launcher.java:257) [junit] en org.apache.tools.ant.launch.Launcher.main (Launcher.java:104)
mi tarea de ejecución de prueba es la siguiente:
<target name = run-junit-tests depends = compile-tests, clean-results> <mkdir dir = $ {test.results.dir} /> <junit failureproperty = tests.failed fork = true showoutput = yes includeantruntime = false> <classpath refid = test.run.path /> <formateador type = xml /> <test name = project.AllTests todir = $ {basedir} / test-results /> </ junit> <fail if = tests.failed message = Pruebas unitarias fallidas /> </ target>
Verifiqué que el classpath contiene lo siguiente así como también todos los códigos y bibliotecas del programa:
ant-junit.jar ant-launcher.jar ant.jar easymock.jar easymockclassextension.jar junit-4.4.jar
He intentado depurar para averiguar qué ZipFile está intentando abrir sin suerte, he intentado cambiar includeantruntime y fork y he intentado ejecutar horm con ant -lib test / libs donde test / libs contiene la hormiga y junit bibliotecas.
Se agradece cualquier información sobre las causas de esta excepción o cómo se configuró para ejecutar exitosamente pruebas unitarias.
ant 1.7.1 (ubuntu), java 1.6.0_10, junit 4.4
Gracias.
Actualización: solucionado Encontrado mi problema. Había incluido mi directorio de clases en mi ruta utilizando un conjunto de archivos en lugar de un pathelement. Esto causaba que los archivos .class se abrieran como archivos ZipFiles, lo que por supuesto arrojó una excepción.