🧪 Tests y pruebas en CORDIA
El proyecto CORDIA incluye una base de tests automatizados para garantizar la calidad del código, la estabilidad del sistema y la validación de funcionalidades clave durante el desarrollo y despliegue.
✅ Tipos de tests
- Unitarios: prueban métodos o funciones de forma aislada.
- De integración: validan la interacción entre componentes (controladores, modelos, servicios).
- End-to-end (en preparación): pruebas de flujo completo desde la interfaz hasta el backend.
⚙️ Ejecución de tests en entorno local
# Ejecutar todos los tests y generar HTML (usa APP_ENV=dev por defecto)
./scripts/tests-run-and-report.sh
# Otro entorno (p. ej., test)
./scripts/tests-run-and-report.sh test
📦 Organización del código de tests
/tests
├── Feature/ # Pruebas funcionales del sistema (API, controladores)
├── Unit/ # Pruebas unitarias específicas de lógica interna
└── TestCase.php # Clase base para los tests
El entorno de test carga una base de datos temporal definida por
phpunit.xml, sin afectar los datos reales.
📄 Informes y resultados
- Los resultados pueden generarse en formato HTML, JUnit o cobertura de código.
- Informe HTML en host:
public/tests.cordia/index.html - JUnit XML dentro del contenedor:
/public-tests/results.xml
🔁 Automatización (GitHub Actions)
Al hacer un push a ramas como dev o main, los tests se ejecutan automáticamente en CI/CD.
Revisa la sección “GitHub Actions” para ver cómo se configuran los workflows de pruebas.
🧰 Recomendaciones
- Añadir tests para cualquier funcionalidad nueva o corregida.
- Mantener los tests actualizados cuando se cambie el comportamiento de un módulo.
- Ejecutar los tests antes de hacer merge a ramas estables.
Si los tests fallan de forma inesperada, consulta el log generado o ejecuta con
--debugpara más información.