Tengo una aplicación principal-context.xml que define un marcador de posición propiedad con dos ubicaciones: Archivo de propiedades por defecto y un archivo de anulación opcional:establecer las propiedades del sistema o variables de entorno Antes de la propiedad de marcador de posición con SpringJunit4ClassRunner
<context:property-placeholder
location="classpath:config.properties,${configOverride}"
ignore-resource-not-found="true" />
El opcional la ubicación de anulación permite especificar otro archivo de propiedades (por ejemplo, "-DconfigOverride = file: /home/app/config.properties") con solo las propiedades que se deben anular.
Para mis pruebas de unidad, estoy usando un contexto de prueba que importa App-context.xml:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:test-context.xml"})
public class UserServiceTest {
...
}
¿Cómo puedo configurar las propiedades del sistema o variables de entorno dentro de la aplicación antes de que el contexto de aplicación se carga? Me gustaría lograr el mismo efecto que establecer "-DconfigOverride = classpath: testConfig.properties" en todas las clases de prueba sin tener que especificar una línea de comando arg, si es posible.
Gracias por la sugerencia +1 - Pensé lo mismo, pero quería comprobar si había algo que pueda hacer en el contexto de la aplicación antes de ir y modificar todas las clases de prueba. Anulo algunos beans en el contexto de prueba, pero desafortunadamente, dado que se permiten múltiples marcadores de posición de propiedad, no puedo anular el marcador de posición de propiedad. – andy