2010-06-04 14 views
11

Tengo un proyecto maven que carga un archivo xslt y ejecuta la transformación junto con otro procesamiento en el resultado. Normalmente, cuando el usuario ejecuta la aplicación, el usuario proporciona la ruta del archivo xslt que se va a cargar. Pero incluyo algunos archivos xslt predeterminados incluidos dentro de mi aplicación que el usuario puede usar sin cargar ningún archivo externo xslt. Hago esto agregándolos a src/main/resources/xslt. Mi problema es que quiero ejecutar pruebas contra esos archivos xslt en fase de prueba. ¿Cómo puedo conseguir esto? ¿Debo copiar los contenidos de src/main/resources/xslt a target/somewhere y cargarlos en mi código de clases de prueba? ¿Qué plugin se usa para eso?Cómo usar los recursos de maven también como recursos de prueba

Respuesta

17

Mi problema es que quiero para ejecutar las pruebas en contra de esos archivos XSLT en fase de prueba. ¿Cómo puedo conseguir esto?

No hay nada que hacer, target/classes está en la ruta de clase de las pruebas. Más precisamente, la ruta de clase para las pruebas es:

  • primera target/test-classes
  • continuación target/classes
  • continuación dependencies

Así recursos de src/main/resources (que se copia en target/classes) son visibles a partir de pruebas.

+0

Sí ... después de publicar la pregunta explícitamente intenté hacer eso y funciona. Simplemente tenía la impresión de que es una convención que src/* es solo para generación, procesamiento y compilación, y que cualquier fase posterior solo debería considerar las rutas target/* para hacer su trabajo. ¿No es cierto? – Paralife

+0

@Paralife Sus recursos se copian en 'target/classes' (y los recursos de prueba se copian en' target/test-classes'). Lo he aclarado. ¿Responde la pregunta? –

+0

Ah bien. No entendí que están copiados. Solo pensé que src/main/resources es visible desde las pruebas directamente. Ya lo veo. Gracias. – Paralife

2

Si coloca un archivo foo.txt dentro src/test/resources/, puede abrir esta vía:

// try-with-resource (Java 1.7) 
try (InputStream is = getClass().getClassLoader().getResourceAsStream("foo.txt")) { 
    // do something with is... 
} 

También puede echar un vistazo a la maven-resources-plugin.

Cuestiones relacionadas