pgtestdb es un paquete de testing en Go y Postgres creado por Peter Downs que aprovecha la función nativa de bases de datos plantilla de PostgreSQL para acelerar la preparación de entornos de prueba. En lugar de migrar una base de datos desde cero cada vez, el paquete clona una plantilla con todas sus tablas, índices y catálogos copiando los ficheros materializados en bloques de 8 kB, una operación muy rápida que evita los costosos enfoques basados en Docker.
El autor del artículo integró pgtestdb en la suite de tests de River mediante Codex para comparar su rendimiento con el método basado en esquemas que utiliza River. Las mediciones muestran tiempos de preparación casi idénticos: 98,4 ms de media para pgtestdb frente a 99,4 ms al crear y migrar un esquema, con p95 de 299,5 ms y 209,0 ms respectivamente. Sin embargo, al medir el wall time total, el enfoque de River con reutilización de esquemas termina siendo 3,5 veces más rápido (14,54 s frente a 51,07 s), gracias a un pool de esquemas precreados que se limpian y reutilizan entre casos.
La conclusión es que pgtestdb es muy rápido para arrancar bases de prueba —unos 100 ms— y resulta especialmente útil para tests end-to-end. No obstante, en suites de gran escala (del orden de 10.000 tests) conviene combinarlo con reutilización de bases plantilla para bajar el coste de setup a 10-20 ms por prueba, en la línea de las transacciones de test. El autor recomienda pgtestdb en la documentación de River, aunque mantiene el esquema como método interno para verificar además el aislamiento por esquema.
