Estoy tratando de migrar mis pruebas unitarias de H2 a Postgresql.
Actualmente, H2 me proporciona un esquema en memoria de modo que cada conexión se asigna a un esquema único, crea las tablas, ejecuta la prueba y descarta el esquema. La creación y destrucción del esquema es manejada automáticamente por H2.
Las pruebas unitarias se ejecutan simultáneamente.
¿Cuál es la mejor manera de hacer esto en Postgresql? Específicamente,
- ¿Cómo obtengo un esquema único por conexión?
- ¿Debería el marco de prueba generar nombres únicos o hay un mecanismo incorporado para hacerlo?
- ¿Cómo me aseguro de que se caiga el esquema cuando se cae la conexión?
- No quiero terminar con esquemas colgantes cuando se matan las pruebas unitarias.
- ¿Qué enfoque producirá el mayor rendimiento?
- Necesito crear / soltar decenas de esquemas por segundo.
ACTUALIZACIÓN : Encontré una respuesta relacionada aquí, pero no deja caer los esquemas en caso de que el proceso que ejecuta las pruebas unitarias se elimine.
pg_temp
es un esquema único, ¿verdad? Entonces, cuando ejecuto pruebas unitarias concurrentes, ¿no se golpearán entre sí las tablas / datos?