Pruebas

Pruebas en PHP

Chamilo utiliza PHPUnit para las pruebas del backend.

Configuración de la Base de Datos de Pruebas

Las pruebas requieren una base de datos dedicada. Crea el archivo .env.test.local con las credenciales de tu base de datos de pruebas:

DATABASE_HOST='127.0.0.1'
DATABASE_PORT='3306'
DATABASE_NAME='chamilo_test'
DATABASE_USER='root'
DATABASE_PASSWORD='root'

Luego, inicializa la base de datos de pruebas:

php bin/console --env=test cache:clear
php bin/console --env=test doctrine:database:create
php bin/console --env=test doctrine:schema:create
php bin/console --env=test doctrine:fixtures:load --no-interaction

Para restablecer después de cambios en el esquema:

php bin/console --env=test doctrine:schema:update --force --complete

Ejecución de Pruebas

Ubicación de las Pruebas

Las pruebas se encuentran en el directorio tests/:

Tipos de Pruebas

  • Pruebas unitarias/integración — Pruebas de PHPUnit en CoreBundle/ y CourseBundle/; la mayoría interactúan con una base de datos real (a través de dama/doctrine-test-bundle)

  • Pruebas funcionales (API) — Extienden AbstractApiTest y prueban endpoints HTTP de extremo a extremo

  • Pruebas Behat — Pruebas de aceptación a nivel de navegador en tests/behat/features/ (ver más abajo)

Pruebas Behat (de Extremo a Extremo)

Chamilo cuenta con un conjunto de pruebas Behat para pruebas de aceptación a nivel de navegador. Requiere una instancia de Chamilo en ejecución, Chrome y ChromeDriver.

Configura la URL base en tests/behat/behat.yml antes de ejecutar las pruebas.

Verificaciones del Frontend

Calidad del Código PHP

Chamilo utiliza ECS (Easy Coding Standard), PHPStan y Psalm para la calidad del código. Hay accesos directos de Composer disponibles para cada uno:

Nota: no hay php-cs-fixer en este proyecto. ECS (symplify/easy-coding-standard) es la herramienta de estilo de código.

Integración Continua

Las solicitudes de extracción (pull requests) son verificadas automáticamente por cuatro flujos de trabajo de GitHub Actions:

Flujo de Trabajo
Qué ejecuta

phpunit.yml

Conjunto de pruebas de PHPUnit

format_code.yml

Verificación de estilo de código con ECS

php_analysis.yml

Psalm, validación de esquema de Doctrine, verificador de seguridad

behat.yml

Pruebas de extremo a extremo con Behat

Última actualización

¿Te fue útil?