Escriu per cercar…

pgTAP

pgTAP es una extensión de pruebas unitarias para Postgres.

Introducción

pgTAP es un framework de pruebas unitarias de código abierto que consiste en un conjunto de funciones de base de datos escritas en PL/pgSQL. Proporciona un conjunto robusto de herramientas y utilidades para escribir y ejecutar pruebas sobre el código de tu base de datos. Inspirado en el popular framework de pruebas xUnit, pgTAP sigue una convención similar y te permite escribir pruebas exhaustivas para objetos de base de datos como tablas, funciones, triggers y más.

Una de sus características más destacadas es su completo conjunto de funciones de aserción integradas que te permiten comprobar los resultados esperados y verificar la integridad de los objetos de tu base de datos.

pgTAP ofrece funcionalidades potentes para entornos PostgreSQL, agilizando la escritura y ejecución de pruebas. Con una integración perfecta con PostgreSQL, aserciones integradas y una gran extensibilidad, las ventajas de usar pgTAP incluyen una cobertura de pruebas exhaustiva, integración nativa con PostgreSQL y validación automatizada de los componentes de la base de datos, lo que lo convierte en una herramienta eficaz para garantizar la fiabilidad del código de la base de datos.

Primeros pasos

shell
docker run -d --name postgres --restart=always -p 5432:5432 -e POSTGRES_PASSWORD=password -e POSTGRES_USER=postgres postgres:18
docker exec postgres sh -c "apt update && apt install -y --no-install-recommends postgresql-18-pgtap"
docker exec postgres psql -U postgres -c "create database test;"

Puedes usar la imagen registry.gitlab.com/optersoft/data/postgres/pgtap:latest en lugar de postgres:18

Activar la extensión

Conéctate a tu base de datos PostgreSQL y ejecuta el siguiente comando para activar la extensión pgTAP:

sql
init.sql
create schema if not exists extensions;
create extension if not exists pgtap with schema extensions;

Aunque el código SQL es create extension, esto equivale a activar la extensión.

Para desactivar una extensión, puedes llamar a drop extension.

Es una buena práctica crear la extensión dentro de un esquema aparte (como extensions) para mantener limpio el esquema public.

Usar la extensión pgTAP

Una vez instalado pgTAP, puedes escribir pruebas para tus aplicaciones PostgreSQL. Aquí tienes un ejemplo sencillo de cómo usar pgTAP:

añadir extensiones a search_pat

sql
test1.sql
set search_path = extensions, public;

begin;
select plan(2);

select ok(1 = 1, 'One equals one');
select is('PostgreSQL'::text, 'PostgreSQL'::text, 'PostgreSQL is PostgreSQL');

select * from finish();
rollback;

En este ejemplo, primero llamamos a la función plan para especificar el número de pruebas que ejecutaremos. Luego, usamos las funciones ok e is para ejecutar nuestras pruebas. Finalmente, llamamos a la función finish para completar nuestra suite de pruebas.

En PostgreSQL, search_path es la lista ordenada de esquemas que el servidor busca cuando haces referencia a un objeto sin cualificarlo con un esquema.

pgtap.is() es polimórfica (anyelement). Cuando pasas dos literales de cadena como 'PostgreSQL', PostgreSQL inicialmente los trata como del tipo unknown. Con ambos argumentos unknown, no puede inferir el tipo polimórfico. La solución es convertir al menos uno (recomiendo ambos) a text.

Pruebas

👉 Crear un framework de pruebas unitarias para PostgreSQL usando la extensión pgTAP

Pendiente

Estàs llegint una vista prèvia.

Inicia la sessió amb Google per llegir la pàgina sencera.

Inicia la sessió amb Google

Només et demanarem que acceptis les condicions del servei.