2010-04-09 13 views
22

que he tratado de cargar el archivo de configuración de la primavera en la ruta de clase src/test/recursos con la siguiente clase abstracta:primavera - @ContextConfiguration no podrá cargar el archivo de configuración en src/test/recursos

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations={"classpath:/applicationContext.xml"}) 
public class BaseIntegrationTests { 

} 

tengo el archivo applicationContext.xml en src/test/resources pero la primavera no puede cargarlo.

Gracias.

+1

Por favor, utilice los bloques * code * para separar las piezas de código. –

+2

Creo que no necesita '/' solo use 'classpath: applicationContext.xml' – ant

+0

Esto se adapte a mis necesidades: http://stackoverflow.com/questions/10385452/location-of-spring-context-xml –

Respuesta

22

Para ser precisos, es el contenido del directorio de salida prueba (target/test-classes) que se encuentra en la ruta de clase, no src/test/resources. Pero los recursos en src/test/resources se copian en el directorio de resultados de prueba por el objetivo resources:testResources (que está vinculado por defecto a la fase process-test-resources).

Dicho esto, su código se ve bien y los recursos para el código fuente de la prueba deberían haber sido copiados por su IDE o por Maven al ejecutar las pruebas y deberían estar disponibles en la ruta de la clase. Entonces debe haber algo más mal. Veo que su clase es una clase base para las pruebas de integración. ¿Has configurado algo elegante en tu pom? ¿Puedes mostrarlo?

+0

proceso-prueba-recursos ayudado. Se arregló el pom. ¡Gracias! – Azee

+0

mi recurso está en el directorio de clases de prueba y puedo cargar el archivo con 'Myclass.class.getClassLoader.getResource ("/my/path ")'. pero no funciona con '@ContextConfiguration (location =" classpath:/my/path ")' – herau

1

Parece que está utilizando maven y está intentando ejecutar las pruebas desde dentro de eclipse. Compruebe la carpeta del buil (target/test-classes/) para applicationContext.xml. Si no está allí, tendrías que construir primero.

5

Hay un reported bug con el uso de la primavera de la dependencia de la prueba (incluye SpringJUnit4ClassRunner) con versiones de JUnit> 4.4.

Si está utilizando una versión de JUnit más nueva que la 4.4, intente moverla a 4.4 y vea si resuelve su problema.

0

Creo que tengo un problema simillar, descubrí que mi solicitud-context.xml no dio en el blanco/prueba-clases/neighter en src/test/recursos

16

Try usando * para que se puede buscar a la ruta de clases

@ContextConfiguration(locations={"classpath*:applicationContext.xml"}) 
+2

¿Qué hace el '*' en comparación con '{" classpath: applicationContext.xml "'? ¿Buscar cualquier profundidad del classpath? No puedo encontrar la documentación que explica esto. – markdsievers

+0

@markdsievers Combina varios archivos en uno en lugar de elegir el primero encontrado.Ver: https://stackoverflow.com/a/3294506/344480 – Matthias

3

su contexto de aplicación debe ser incluido en la ruta de clase y poner *:

@ContextConfiguration(locations = { "classpath:*/application-context.xml" }) 
0

Si está utilizando Maven y ejecutar la prueba c ases de eclipse, proyecto clic derecho> Maven> actualización de maven (ALTF5) podría funcionar para usted.

Cuestiones relacionadas