Problemas resueltos: - Eliminada dependencia de UUIDs hardcodeados en tests - Agregadas validaciones específicas de valores esperados - Implementado cleanup automático de datos de test Cambios principales: Tests organizados por categoría (7 archivos nuevos): - test_structure.sql: 8 tests de estructura de BD - test_constraints.sql: 6 tests de validaciones - test_triggers.sql: 3 tests de triggers automáticos - test_queries.sql: 5 tests de queries típicas - test_functions.sql: 3 tests de funciones auxiliares - test_edge_cases.sql: 7 tests de casos límite - test_indexes.sql: 6 tests de uso de índices Mejoras implementadas: - Cada test genera sus propios datos dinámicamente - Tests usan bloques DO $$ con UUIDs generados - Validaciones específicas con valores esperados - Cleanup automático al finalizar cada test - Tests de casos edge (arrays vacíos, NULL, límites) - Verificación de uso de índices con EXPLAIN test_all.sql actualizado: - Ahora ejecuta todos los archivos organizados - Total: ~38 tests independientes y robustos - Progreso visual por categoría - ASCII art y mejor presentación Todos los tests verificados y funcionando correctamente
139 lines
5.0 KiB
PL/PgSQL
139 lines
5.0 KiB
PL/PgSQL
-- ============================================
|
|
-- rioCata - Suite Completa de Tests
|
|
-- ============================================
|
|
-- Ejecuta todos los tests organizados por categoría
|
|
-- ============================================
|
|
|
|
\echo ''
|
|
\echo '██████╗ ██╗ ██████╗ ██████╗ █████╗ ████████╗ █████╗ '
|
|
\echo '██╔══██╗██║██╔═══██╗██╔════╝██╔══██╗╚══██╔══╝██╔══██╗'
|
|
\echo '██████╔╝██║██║ ██║██║ ███████║ ██║ ███████║'
|
|
\echo '██╔══██╗██║██║ ██║██║ ██╔══██║ ██║ ██╔══██║'
|
|
\echo '██║ ██║██║╚██████╔╝╚██████╗██║ ██║ ██║ ██║ ██║'
|
|
\echo '╚═╝ ╚═╝╚═╝ ╚═════╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝'
|
|
\echo ''
|
|
\echo '=========================================='
|
|
\echo 'Suite Completa de Tests - rioCata'
|
|
\echo '=========================================='
|
|
\echo ''
|
|
\echo 'Esta suite ejecuta todos los tests organizados en categorías:'
|
|
\echo ' 1. Estructura de Base de Datos'
|
|
\echo ' 2. Constraints y Validaciones'
|
|
\echo ' 3. Triggers Automáticos'
|
|
\echo ' 4. Queries Típicas'
|
|
\echo ' 5. Funciones Auxiliares'
|
|
\echo ' 6. Casos Límite (Edge Cases)'
|
|
\echo ' 7. Uso de Índices'
|
|
\echo ''
|
|
\echo 'Iniciando tests...'
|
|
\echo ''
|
|
|
|
-- ============================================
|
|
-- 1. Tests de Estructura
|
|
-- ============================================
|
|
\i postgres/tests/test_structure.sql
|
|
|
|
\echo ''
|
|
\echo '=========================================='
|
|
\echo '1/7 Estructura completada ✓'
|
|
\echo '=========================================='
|
|
\echo ''
|
|
|
|
-- ============================================
|
|
-- 2. Tests de Constraints
|
|
-- ============================================
|
|
\i postgres/tests/test_constraints.sql
|
|
|
|
\echo ''
|
|
\echo '=========================================='
|
|
\echo '2/7 Constraints completados ✓'
|
|
\echo '=========================================='
|
|
\echo ''
|
|
|
|
-- ============================================
|
|
-- 3. Tests de Triggers
|
|
-- ============================================
|
|
\i postgres/tests/test_triggers.sql
|
|
|
|
\echo ''
|
|
\echo '=========================================='
|
|
\echo '3/7 Triggers completados ✓'
|
|
\echo '=========================================='
|
|
\echo ''
|
|
|
|
-- ============================================
|
|
-- 4. Tests de Queries
|
|
-- ============================================
|
|
\i postgres/tests/test_queries.sql
|
|
|
|
\echo ''
|
|
\echo '=========================================='
|
|
\echo '4/7 Queries completadas ✓'
|
|
\echo '=========================================='
|
|
\echo ''
|
|
|
|
-- ============================================
|
|
-- 5. Tests de Funciones
|
|
-- ============================================
|
|
\i postgres/tests/test_functions.sql
|
|
|
|
\echo ''
|
|
\echo '=========================================='
|
|
\echo '5/7 Funciones completadas ✓'
|
|
\echo '=========================================='
|
|
\echo ''
|
|
|
|
-- ============================================
|
|
-- 6. Tests de Edge Cases
|
|
-- ============================================
|
|
\i postgres/tests/test_edge_cases.sql
|
|
|
|
\echo ''
|
|
\echo '=========================================='
|
|
\echo '6/7 Edge Cases completados ✓'
|
|
\echo '=========================================='
|
|
\echo ''
|
|
|
|
-- ============================================
|
|
-- 7. Tests de Índices
|
|
-- ============================================
|
|
\i postgres/tests/test_indexes.sql
|
|
|
|
\echo ''
|
|
\echo '=========================================='
|
|
\echo '7/7 Índices completados ✓'
|
|
\echo '=========================================='
|
|
\echo ''
|
|
|
|
-- ============================================
|
|
-- Resumen Final
|
|
-- ============================================
|
|
\echo ''
|
|
\echo '╔════════════════════════════════════════╗'
|
|
\echo '║ SUITE COMPLETA DE TESTS FINALIZADA ║'
|
|
\echo '╚════════════════════════════════════════╝'
|
|
\echo ''
|
|
\echo 'Categorías ejecutadas:'
|
|
\echo ' ✓ Estructura (8 tests)'
|
|
\echo ' ✓ Constraints (6 tests)'
|
|
\echo ' ✓ Triggers (3 tests)'
|
|
\echo ' ✓ Queries (5 tests)'
|
|
\echo ' ✓ Funciones (3 tests)'
|
|
\echo ' ✓ Edge Cases (7 tests)'
|
|
\echo ' ✓ Índices (6 tests)'
|
|
\echo ''
|
|
\echo 'Total: ~38 tests ejecutados'
|
|
\echo ''
|
|
\echo 'Para ejecutar categorías individuales:'
|
|
\echo ' \\i postgres/tests/test_structure.sql'
|
|
\echo ' \\i postgres/tests/test_constraints.sql'
|
|
\echo ' \\i postgres/tests/test_triggers.sql'
|
|
\echo ' \\i postgres/tests/test_queries.sql'
|
|
\echo ' \\i postgres/tests/test_functions.sql'
|
|
\echo ' \\i postgres/tests/test_edge_cases.sql'
|
|
\echo ' \\i postgres/tests/test_indexes.sql'
|
|
\echo ''
|
|
\echo 'Para ver queries de ejemplo:'
|
|
\echo ' \\i postgres/tests/example_queries.sql'
|
|
\echo ''
|