2010-05-26 22 views
5

Estoy escribiendo una pequeña aplicación Maven en Eclipse. Guardo algunos archivos de propiedades y mi contexto de aplicación en el directorio src/main/resources.Haga que Eclipse use src/test/resources en lugar de src/main/resources

Ahora quiero hacer que Eclipse utilice propiedades en el directorio src/test/resources. Entonces, cuando ejecuto y depuro el programa en Eclipse, deben usarse estas propiedades de prueba.

¿Sabes cómo podría lograrlo?

+0

Lo hace automáticamente. ¿Cómo los estás leyendo? – Bozho

+0

leí el archivo de propiedades en el contexto de aplicación XML con \t \t \t

Respuesta

4

Si se utiliza el Maven Eclipse Plugin o m2eclipse, src/test/resources precede src/main/resources en la ruta de clase (más precisamente, su directorios de salida). En otras palabras, no hay nada que hacer, las cosas solo funcionan como en la línea de comando.

6

Prueba esto:

  1. vaya a "Run-> configuraciones de ejecución ..." (en caso de depuración "Run-> configuraciones de depuración ...")
  2. abierto Ejecutar configuración (depuración) que se utiliza
  3. Abra la pestaña
  4. Seleccionar "entradas de usuario" "ruta de clases" y haga clic en "Advanced ..." a la derecha
  5. en la ventana abierta selecciona "Añadir carpeta", seleccione el src/test/recursos
  6. Esta carpeta aparecerá en "entradas de usuario", entonces usted debe moverlo hacia arriba para que sea la primera a la ruta de clase
+1

src/main/resources va antes de src/test/resources en classpath. Por lo tanto, se cargan sus db.properties de src/main/resources. – yatskevich

+0

¡Impresionante que funciona! –

3

Utilice una anulación de la prueba (por ejemplo testOverrides.xml):

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

    <!-- this file need to be imported before other contexts to ensure the test properties take effect --> 

    <context:property-placeholder location="classpath*:META-INF/spring/testproperties/*.properties"/> 

</beans> 

En sus pruebas, asegúrese de que sea importó por primera vez:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = {"classpath*:META-INF/spring/testOverrides.xml","classpath*:META-INF/spring/applicationContext.xml"}) 
public class SomeTest { ... } 

Ahora poner todas sus propiedades de prueba en src/test/resources/META-INF/spring/testproperties/.

También debe asegurarse de que el configurador de marcador de posición main no vea testproperties, p. aquí está el mío:

<context:property-placeholder location="classpath*:META-INF/spring/*.properties"/> 

No utiliza el comodín doble *, por lo que solo se verá en ese directorio.

Utilizo el método anterior con gran éxito.

Cuestiones relacionadas