2011-06-07 11 views
13

cuando uso el comando: mvn test, maven utiliza los recursos principales en lugar de los de prueba en src/test/resources.cómo hacer que maven utilice los recursos de prueba

¿Cómo puedo hacer que maven utilice los recursos de prueba en lugar de los recursos principales?

EDITAR: Uso Classloader para encontrar mis recursos. Classloader puede encontrar recursos de mi directorio src/test/resources, pero se ve en src/main/java primero para el recurso.

ClassLoader loader = Thread.currentThread().getContextClassLoader(); 
InputStream file =loader.getResourceAsStream("resource.xml"); 

¿O hay alguna propiedad que pueda usar mientras ejecuto un comando maven que priorizará un classpath?

EDIT 2: He descubierto el problema, carga de pruebas/recursos para la prueba, pero mi prueba implica la implementación de una aplicación web (pruebas de integración) y desde allí cuando la aplicación accede al recurso utiliza src/main/recursos. ¿Hay alguna manera de cambiar el orden de la ruta de clase o hacer que una preceda a la otra para un WAR desplegado en un contenedor de embarcadero?

+2

por favor, no haga la misma pregunta otra vez, edite su pregunta existente con las actualizaciones pertinentes en su lugar, lo que le dará un golpe a su pregunta. Gracias. – Kev

Respuesta

4

¿No le puedes poner otro nombre?
El cargador no sabe que su resource.xml está en src/main/resources o src/test/resources, es solo una ruta que debe buscar. Creo que el problema no es Maven, así es como debería funcionar el Loader y funciona. De Maven, ¿esperaría descartar todas las clases/recursos desde src/main/resources al hacer la fase de prueba?

+0

ya, ¿es eso posible? – Sujen

+0

No lo sé. Tal vez pueda configurar Surefire o cargar el recurso manualmente en su clase de prueba. –

+1

He resuelto el problema, carga de pruebas/recursos para la prueba, sin embargo, mi prueba implica la implementación de una aplicación web (pruebas de integración) y desde allí cuando la aplicación web accede al recurso utiliza src/main/resources. ¿Hay alguna manera de cambiar el orden de la ruta de clase o hacer que una preceda a la otra para un WAR desplegado en un contenedor de embarcadero? Voy a actualizar mi pregunta – Sujen

6

Compruebe su directorio target/test-classes para resource.xml. Su archivo debería estar aquí. Si encuentras este archivo, creo que el problema es el mismo. Intente cambiar el nombre del archivo, por ejemplo, a test-resource.xml. Si el archivo no existe en el directorio de clases de prueba, debe configurar la administración de recursos en maven pom.xml. Use maven-resouce-plugin. Espero que ayude.

Cuestiones relacionadas