Saltar al contenido

Spring Boot DataJpaTest prueba unitaria volviendo a H2 en lugar de mySql

Solución:

Por defecto, el @DataJpaTest utiliza en la base de datos de memoria H2 para pruebas de repositorios. Si necesita usar la base de datos real, puede considerar deshabilitar las configuraciones automáticas o usar @SpringBootTest donde está habilitada toda la aplicación web mvc.

Para deshabilitar la configuración automática:

@RunWith(SpringRunner.class)
@ActiveProfiles("test")
@Transactional
@DataJpaTest
@AutoConfigureTestDatabase(replace=Replace.NONE)
public class IssueRepositoryIntegrationTests 

@AutoConfigureTestDatabase configura la base de datos H2 de prueba para usted. Puede mencionar específicamente que no se menciona arriba o puede excluir esta configuración automática como:

@EnableAutoConfiguration(exclude=AutoConfigureTestDatabase.class)

PD: : Todavía no he probado la exclusión anterior.

Para obtener más información sobre eso, vaya a través de javadoc: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/autoconfigure/jdbc/AutoConfigureTestDatabase.html

De @DataJpaTest documentación:

De forma predeterminada, las pruebas anotadas con @DataJpaTest utilizarán una base de datos incorporada en la memoria (reemplazando cualquier fuente de datos explícita o normalmente configurada automáticamente).

Si va a la documentación, puede ver que esta anotación agrega muchas otras anotaciones.

@Transactional La anotación se comporta de manera diferente en el contexto de prueba que en el contexto de la aplicación:

De la documentación de primavera:

Anotar un método de prueba con @Transactional hace que la prueba se ejecute dentro de una transacción que, de forma predeterminada, se revierte automáticamente después de completar la prueba.

Creo que proporcioné suficiente información para responder a su pregunta, además, puede echar un vistazo a los siguientes artículos:

Configuración de fuente de datos Spring separada para pruebas
Pruebas con perfiles y clases de configuración de @Configuration Classes and Profiles

¡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 *