Tests

Tests PHP

Chamilo utilise PHPUnit pour les tests backend.

Configuration de la base de données de test

Les tests nécessitent une base de données dédiée. Créez un fichier .env.test.local avec les identifiants de votre base de données de test :

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

Ensuite, initialisez la base de données de test :

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

Pour réinitialiser après des modifications du schéma :

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

Exécution des tests

Emplacement des tests

Les tests se trouvent dans le répertoire tests/ :

Types de tests

  • Tests unitaires/intégration — Tests PHPUnit dans CoreBundle/ et CourseBundle/ ; la plupart accèdent à une véritable base de données (via dama/doctrine-test-bundle)

  • Tests fonctionnels (API) — Étendent AbstractApiTest et testent les points de terminaison HTTP de bout en bout

  • Tests Behat — Tests d'acceptation au niveau du navigateur dans tests/behat/features/ (voir ci-dessous)

Tests Behat (de bout en bout)

Chamilo dispose d'une suite de tests Behat pour les tests d'acceptation au niveau du navigateur. Cela nécessite une instance de Chamilo en cours d'exécution, Chrome et ChromeDriver.

Configurez l'URL de base dans tests/behat/behat.yml avant de lancer les tests.

Vérifications Frontend

Qualité du code PHP

Chamilo utilise ECS (Easy Coding Standard), PHPStan et Psalm pour la qualité du code. Des raccourcis Composer sont disponibles pour chacun :

Remarque : il n'y a pas de php-cs-fixer dans ce projet. ECS (symplify/easy-coding-standard) est l'outil de style de code.

Intégration Continue

Les pull requests sont automatiquement vérifiées par quatre workflows GitHub Actions :

Workflow
Ce qu'il exécute

phpunit.yml

Suite de tests PHPUnit

format_code.yml

Vérification du style de code ECS

php_analysis.yml

Psalm, validation du schéma Doctrine, vérificateur de sécurité

behat.yml

Tests de bout en bout Behat

Mis à jour

Ce contenu vous a-t-il été utile ?