Saltar a contenido

🧪 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 --debug para más información.