Sencillo y fiable base de datos en memoria para las pruebas de integración java rápido con soporte para JPA

StackOverflow https://stackoverflow.com/questions/3444265

Pregunta

Mis pruebas de integración se ejecute mucho más rápido si utilicé en memoria de la base de datos en lugar de PostgreSQL. Yo uso APP (Hibernate) y necesito una memoria de base de datos en que sería fácil pasar a utilizar JPA, fácil de instalar, y fiable. Que necesita para apoyar JPA e Hibernate (o viceversa si se quiere) en lugar ampliamente ya que no tengo deseo de adoptar el código de acceso a datos para las pruebas.

¿Qué base de datos es la mejor opción dada requisitos arriba?

¿Fue útil?

Solución

pruebas de integración , ahora uso H2 (del autor original de HSQLDB) que prefiero sobre HSQLDB. Es más rápido (y quiero que mis pruebas sean lo más rápido posible), que tiene algunas características interesantes como el modo de compatibilidad href="http://h2database.com/html/features.html#compatibility" rel="noreferrer"> , el equipo de desarrollo es muy sensible (mientras HSQLDB se mantuvo inactivo durante años, hasta hace muy poco).

Otros consejos

He estado usando HSQLDB en memoria para pruebas de integración JPA / Hibernate persistencia en Java. Inicia con bastante rapidez, no requiere ninguna configuración especial.

El único problema que he visto hasta ahora con el uso de HSQLDB con Hibernate tenía que ver con el tamaño del lote que necesita ser puesto a 0, pero que sólo podría haber sido relacionado con una versión antigua. Voy a tener una excavación y ver si puedo encontrar los detalles de ese problema.

Derby soporta un modo en memoria estos días, ya no está marcado experimental.

Yo uso Derby. Por un lado se trata de 3 menos líneas de código por unidad de prueba ya que no hay necesidad de una parada después de la prueba. Sin embargo, es necesario utilizar una aplicación APP que pueden caer y crear tablas como EclipseLink.

Derby también puede inicializar una nueva base de datos en memoria de un archivo para que pueda tener una base de datos de referencia y volver a ella en cualquier momento.

Para la unidad de pruebas, sin embargo, prefiero crear mis objetos en la lógica @Before de mi unidad de prueba se me hace más fácil, especialmente con la APP, ya que me permite la flexibilidad para hacer refactorizaciones y no tener que preocuparse acerca de la estructura de base de datos subyacente, otras herramientas como DBUnit se basan en la práctica una estructura estática y refactorización implica el cambio de los XMLs DBUnit manualmente en lugar de confiar en las capacidades de refactorización de Eclipse.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top