Saltar al contenido

Cargue un archivo application.yml diferente en SpringBoot Test

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"
        }
)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *