2011-10-27 8 views
22

Quiero cargar un recurso que se encuentra dentro de la carpeta/datatest en el espacio de trabajo de mi proyecto. Entonces, el archivo completo será /datatest/a.xml. ¿Cómo obtengo la ruta absoluta de este recurso que necesito en las pruebas unitarias, ya que la prueba unitaria podría ejecutarse en cualquier máquina que no quiera codificarla pero obtenerlo en lugar de usar el cargador de clases? Cómo lo hago ?Usar groovy para cargar un recurso de prueba de la estructura de mi proyecto

+0

Es el espacio de trabajo del proyecto en la ruta de clase? Usualmente no. Si ese es el caso, el cargador de clases no puede verlo –

+0

Sí, el espacio de trabajo del proyecto está incluido en classpath – Phoenix

+0

También puede consultar [esta respuesta] (http://stackoverflow.com/questions/14162100/convert-a-classpath- filename-to-a-real-filename/14162103 # 14162103) – GreenGiant

Respuesta

38

Si está en la ruta de clases, entonces esto debería funcionar:

String xmlString = this.getClass().getResource('/datatest/a.xml').text 
+0

En realidad es un archivo ".lst" ... por ejemplo "a.lst" ... Lo agregué a la configuración de recursos del compilador en intelliJ pero todavía no suerte – Phoenix

+1

En ese caso, no está en el classpath –

+0

No había definido explícitamente un CLASS_PATH, pero descubrí que el directorio actual estaba incluido en mi CLASS_PATH efectivo/predeterminado ejecutando este Groovy one-liner: 'this.class .classLoader.rootLoader.URLs.each {println it} '--entonces quedó claro dónde debería guardar los archivos para poder' getResource' abrirlos más tarde. – MarkHu

Cuestiones relacionadas