¿Cómo configuro el directorio de trabajo para la tarea Ant 'junit'?

votos
12

Mi compilación Ant incluye una tarea junit que ejecuta algunas pruebas. Para que las pruebas funcionen, user.dirdebe cambiarse el valor de la propiedad que especifica el directorio de trabajo actual ( ), pero no estoy seguro de cómo lograrlo.

La tarea en cuestión actualmente se ve así:

<junit printsummary=withOutAndErr fork=true
           haltonfailure=yes showoutput=true
           filtertrace=false dir=C:/workspace/obp-web>
    <jvmarg value=-Duser.dir=C:/workspace/obp-web/>

    <classpath>
        <fileset dir=${web.lib.dir} includes=**/*.jar/>
        <fileset dir=${lib.dir} includes=**/*.jar/>
    </classpath>    
    <batchtest fork=no todir=${web.build.dir}/testresults>
        <formatter type=xml/>
        <zipfileset src=${web.build.dir}/test-obp-web.jar>
            <include name=**/*Test.class/>
        </zipfileset>           
    </batchtest>
</junit>

Tenga en cuenta que he intentado utilizar tanto el atributo dir como la tarea jvmarg para cambiar el directorio de trabajo a C: / workspace / obp-web. Sin embargo, cuando ejecuto Ant con la salida detallada activada, veo el siguiente resultado, que indica que el directorio de trabajo no se ha configurado correctamente:

atributo [junit] dir ignorado si se ejecuta en la misma máquina virtual

[junit] Uso de las propiedades del sistema {java.runtime.name = Java (TM) SE Runtime Environment, sun.boot.library.path = c: \ jdk6 \ jre \ bin, java.vm.version = 10.0-b23, ant. lib rary.dir = C: \ java \ apache-ant-1.7.0 \ lib, java.vm.vendor = Sun Microsystems Inc., java.vendor.url = http://java.sun.com/ , path. separator = ;, java.vm.name = Java HotSpot (TM) Client VM, file.encoding.pkg = sun.io, user.country = CA, sun.java.launcher = SUN_STANDARD, sun.os.patch.level = Service Pack 1, java.vm.specification.name = Especificación de máquina virtual de Java, user.dir = c: \ workspace \ obp-ear, java.runtime.version = 1.6.0_07-b06, java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment, java.endorse d.dirs = c: \ jdk6 \ jre \ lib \ endorsed, os.arch = x86, java .io.tmpdir = C: \ Users \ donal \ AppData \ Local \ Temp \, line.separator =

Publicado el 21/01/2009 a las 19:42
por usuario
En otros idiomas...                            


4 respuestas

votos
7

Intenta usar un jvmarg:

<junit fork="yes">
  <jvmarg value="-Duser.dir=somedir"/>
  ...
</junit>

Tenga en cuenta que fork debe ser verdadero tanto en la etiqueta junit como en la etiqueta batchtest, ya que la etiqueta batchtest anula el valor de junit . Los Jvmargs solo funcionan si junit bifurca una nueva JVM.

Respondida el 21/01/2009 a las 19:51
fuente por usuario

votos
14

Use el atributo "dir" (también debe bifurcar el vm):

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

Respondida el 21/01/2009 a las 19:58
fuente por usuario

votos
0

¿Has probado la ubicación de pathelement? Esto funcionó para mí.

  <classpath>
<!-- filesets, etc. -->
<pathelement location="C:/workspace/obp-web" />
  </classpath>
Respondida el 12/08/2009 a las 08:09
fuente por usuario

votos
0

Mismo problema que tú.

Resolví que al hacer que el tenedor batchtest true:

tenedor batchtest = " no " ..

a

tenedor batchtest = " " ..

Respondida el 19/07/2013 a las 14:58
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more