Solución:
Una opción es trabajar con perfiles. Crea un archivo llamado application-test.yml, mueva todas las propiedades que necesita para esas pruebas a ese archivo y luego agregue el @ActiveProfiles
anotación a su clase de prueba:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@IntegrationTest
@ActiveProfiles("test") // Like this
public class MyIntTest{
}
Tenga en cuenta que, además, cargará application-test.yml, por lo que todas las propiedades que están en application.yml también se aplicarán. Si no desea eso, use un perfil para esos también, o anótelos en su aplicación-test.yml.
Puede establecer sus propiedades de prueba en src/test/resources/config/application.yml
expediente. Los casos de prueba de Spring Boot tomarán propiedades de application.yml
presentar en prueba directorio.
los config
La carpeta está predefinida en Spring Boot.
Según documentación:
Si no le gusta application.properties como el nombre del archivo de configuración, puede cambiar a otro nombre de archivo especificando una propiedad de entorno spring.config.name. También puede hacer referencia a una ubicación explícita utilizando la propiedad de entorno spring.config.location (que es una lista separada por comas de ubicaciones de directorios o rutas de archivos). El siguiente ejemplo muestra cómo especificar un nombre de archivo diferente:
java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
Lo mismo funciona para application.yml
Documentación:
https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-application-property-files
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files
Puedes usar @TestPropertySource
para cargar diferentes propiedades / archivo yaml
@TestPropertySource(locations="classpath:test.properties")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(Application.class)
public class MyIntTest{
}
O si quieres anular solo propiedades específicas / yaml que puede usar
@TestPropertySource(
properties = {
"spring.jpa.hibernate.ddl-auto=validate",
"liquibase.enabled=false"
}
)