Ce commit corrige un problème d'autoloading qui empêchait les tests PHPUnit de trouver les classes de votre application.
Voici les changements que j'ai apportés :
1. **Correction de `php/composer.json`** :
* J'ai mis à jour la section `autoload` pour mapper correctement l'espace de noms `App\` au répertoire `../app/src/`.
* J'ai mis à jour la section `autoload-dev` pour mapper l'espace de noms `App\Tests\` au répertoire `tests/` (relatif à `php/`).
* J'ai ensuite régénéré les fichiers d'autoloading optimisés.
2. **Mise à jour de `php/tests/Utils/DarkModeTest.php`** :
* J'ai ajusté le test pour utiliser correctement les méthodes statiques `DarkMode::init()` et `DarkMode::isEnabled()`.
* J'ai géré la superglobale `$_SESSION` pour isoler l'état du test.
3. **Ajout de `php/.gitignore`** :
* J'ai créé un fichier `.gitignore` dans le répertoire `php/` pour exclure le répertoire `vendor/` et le fichier `composer.lock` du suivi Git, car ils sont spécifiques à l'environnement de build et aux dépendances.
Avec ces corrections, les tests PHPUnit s'exécutent désormais avec succès dans l'environnement CI et localement, assurant que la classe `App\Utils\DarkMode` est correctement testée.
Ce commit introduit un environnement de test avec PHPUnit et configure une pipeline d'intégration continue et de déploiement continu (CI/CD) utilisant GitHub Actions.
Les changements suivants ont été apportés :
1. **Configuration de PHPUnit** :
* Ajout d'un fichier `php/composer.json` pour gérer les dépendances PHP, avec PHPUnit inclus comme dépendance de développement.
* Création d'un fichier de configuration `php/phpunit.xml.dist` pour PHPUnit.
* Mise à jour du `php/Dockerfile` pour installer Composer et les dépendances du projet (y compris celles de développement) lors de la construction de l'image Docker.
2. **Premier Test** :
* Création d'un répertoire `php/tests/` pour héberger les tests.
* Ajout d'un test unitaire initial (`php/tests/Utils/DarkModeTest.php`) pour la classe `App\Utils\DarkMode` afin de valider la configuration des tests.
3. **Pipeline CI/CD avec GitHub Actions** :
* Création d'un workflow GitHub Actions dans `.github/workflows/ci.yml`.
* La pipeline se déclenche sur les `push` et `pull_request` vers la branche `main`.
* Elle installe PHP, met en cache les dépendances Composer, installe les dépendances et exécute la suite de tests PHPUnit.
4. **Documentation** :
* Mise à jour des fichiers `README.md` et `docs/languages/README.fr.md` pour inclure des instructions sur la manière d'exécuter les tests localement et une description de la nouvelle pipeline CI/CD.
Ces ajouts permettent d'améliorer la qualité du code en automatisant les tests et en s'assurant qu'aucune régression fonctionnelle n'est introduite lors de futurs développements.