Les tests unitaires PHP avec PHPUnit consistent à écrire de petits tests automatisés qui vérifient si des portions de code isolées (fonctions, méthodes) produisent le bon résultat. PHPUnit est le framework de test le plus utilisé pour PHP et s’intègre avec Composer. Cet article explique comment installer PHPUnit, écrire votre premier test, développer en test-driven et exécuter les tests, y compris sur un environnement d’hébergement.
Qu’est-ce que PHPUnit et pourquoi tester ?
PHPUnit est un framework de test permettant d’écrire des tests unitaires : des tests isolés qui vérifient une seule méthode ou fonction sans dépendances comme une base de données ou une API externe. L’objectif est de détecter les régressions tôt, avant qu’elles n’arrivent en production. Une bonne suite de tests donne confiance lors du refactoring et rend votre code plus facile à parcourir, car les tests servent aussi de documentation.
Les tests unitaires diffèrent des tests fonctionnels ou end-to-end : ils sont rapides, isolés et se concentrent sur la logique, pas sur l’application complète. Pour les applications web, on les combine souvent avec des tests d’intégration, mais la base commence avec PHPUnit.
Installer et configurer PHPUnit
PHPUnit s’installe via Composer, le gestionnaire de paquets standard pour PHP. Assurez-vous que votre projet dispose d’un fichier composer.json et exécutez :
composer require --dev phpunit/phpunit
Créez ensuite un fichier de configuration phpunit.xml à la racine de votre projet. Vous y indiquez où se trouvent vos fichiers de test, par exemple dans le dossier tests/, et quel fichier bootstrap est chargé (généralement vendor/autoload.php).
Sur un hébergement mutualisé, vous testez généralement en local ou dans un environnement de staging, et ne mettez en ligne que le code testé. Si vous disposez d’un VPS ou d’un serveur sur lequel vous pouvez utiliser Composer et PHP CLI via SSH, vous pouvez aussi exécuter PHPUnit directement sur le serveur. En cas de doute sur les versions PHP et l’accès CLI, consultez les paramètres de votre offre d’hébergement web.
require-dev de composer.json, afin qu’elles ne soient pas incluses dans votre environnement de production.Écrire vos premiers tests
Un test PHPUnit est une classe qui hérite de PHPUnitFrameworkTestCase. Chaque méthode commençant par test est exécutée automatiquement. Un exemple simple :
use PHPUnitFrameworkTestCase;