2010-05-04 7 views
7

I m frente a un problema por el que la prueba/recurso no es recogido, pero en su lugar se recogió principal/recurso del frascoJunit run not picking file src/test/resources. Para archivo requerido por algún frasco de dependencia

escenario es como: MYPROJECT src/test/recursos --- tener config .xml w que debería necesitar abc.jar, que es una dependencia en Myproject.

Al ejecutar el caso de prueba para Myproject se carga config.xml de abc.jar en lugar de Myproject test/resources. - Necesito saber el orden en que los recursos de selección maven. - O intentarlo no es posible.

Gracias.

+0

Pregunta de reformulación: dependencia de Myproject abc.jar class loadFile.java carga el archivo config.xml que se encuentra en abc src/main/resource. Cuando estoy ejecutando el caso de prueba Myproject que debe cargar .xml loadFile.java. 1. abc jar main/resource o 2. Myproject tase/resource –

Respuesta

13

Los archivos de target/tests-classes (de forma predeterminada) se incluyen en comenzando classpath de prueba. Por lo tanto, cuando se ejecutan pruebas, los recursos de src/main/resources y src/test/resources están en la ruta de clase, pero la última tiene prioridad sobre la anterior. En otras palabras, si usted tiene un config.xml en src/main/resources y en src/test/resouces:

  • src/main/resources/config.xml será empaquetado en el artefacto final de pero
  • src/test/resources/config.xml se utilizará cuando se ejecuta la prueba

Si esto no es lo que estás experimentando, debe haber un error en otro lugar.

Si quiere convencerse de que puede ejecutar mvn -X test, imprimirá el Test Classpath. Y verá que esta ruta de clases es de (en este orden):

  • target/test-classes
  • target/classes
  • el frasco proyecto
  • las dependencias (incluyendo los que tienen un alcance de ensayo)
+0

Gracias por responder ... se muestra como lo mencionas. Esto significa que el archivo config.xml en test-classes obtendrá preferencia sobre el archivo config.xml en algunas dependencias jar. Pero esto no sucede en mi caso. Jar de dependencia está cargando su propio .xml en lugar de mi prueba/recursos. Wat puedo hacer para rastrearlo. –

+0

@ saddy-dj ¿Quién está cargando 'config.xml' exactamente? ¿Un caso de prueba o una clase de un JAR?Creo que empiezo a entender cuál podría ser la causa del problema ... –

+0

la clase de un JAR lo está cargando ... –

0

Me encontré con un problema similar con mi proyecto. Así que tengo TestClassA en ProjectA que llama ClassB desde ProjectB. ClassB usa un archivo en src/test/resources. Por algún motivo, este archivo no se estaba utilizando. Descubrí que ProjectA tenía un archivo con el mismo nombre en su src/test/resources.
Así que, en resumen, aunque ClassB estaba en ProjectB, estaba usando src/test/resources de ProjectA porque ese es el proyecto donde se originó la prueba.

Cuestiones relacionadas