estaba corriendo pruebas de unidad de selenio en TestNG con la tarea Ant de Java, así:¿Cuál es la diferencia entre los atributos <pathelement> 'ruta' y 'ubicación' en Ant?
<java classpathref="runtime.classpath"
classname="org.testng.TestNG"
failonerror="false">
<arg value="-d" />
<arg value="${grid.location}/target/reports" />
<arg value="${lib.location}/testng.xml"/>
</java>
runtime.classpath
es una estructura que incluía pathlike <pathelement path="${basedir}/target/classes/" />
, por lo que pensé que era necesario para permitir que TestNG sé a qué clases se ejecute.
<path id="runtime.classpath">
...
<!-- Target classes -->
<pathelement path="${basedir}/target/classes/" />
</path>
Sin embargo, seguí viendo en el registro que TestNG encontró 0 clases aplicables.
finalmente me dieron un poco de ayuda de un colega y parece que este fue el cambio clave:
<path id="runtime.classpath">
...
<!-- path attribute changed to location -->
<pathelement location="${basedir}/target/classes/" />
</path>
Esto también tira en las clases de prueba correctamente:
<java classpathref="runtime.classpath"
classname="org.testng.TestNG"
failonerror="false">
<arg value="-d" />
<arg value="${grid.location}/target/reports" />
<arg value="${lib.location}/testng.xml"/>
<classpath>
<pathelement location="${basedir}/target/classes/" />
</classpath>
</java>
¿Cuál es la diferencia entre el path
y location
atributos? Miré Writing a Simple Buildfile (específicamente la sección Estructuras similares a Path), pero en ese manual me parece que location
es más específico que path
. Eso no parece ser el caso empíricamente, pero no puedo entender por qué.
¿Cómo se diferencian los atributos 'path' y' location' de 'pathelement'? ¿Quiere decir que agregar una estructura similar a una ruta de acceso como referencia de ruta de clase a la tarea de Java es diferente dependiendo de si se está ejecutando Ant JVM o la JVM bifurcada? – Feanor
Buena pregunta. Agregado un poco más arriba, puede intentar ejecutar ambos en modo detallado con depuración (-v -d) y ver cómo difieren los dos archivos. –