Chapitre: Développer des tests unitaires
« Debuggage et utilisation de jLog | ^ Aide au développement |
− Table des matières
Le développement de tests unitaires est de plus en plus présent dans les projets, et jelix propose de quoi en réaliser facilement. La réalisation des tests unitaires fait d'ailleurs partie des méthodes de développement Agile. Le processus de développement veut en théorie qu'à chaque fois que l'on développe une fonctionnalité, une méthode, on développe aussi les tests qui vont permettre de vérifier le bon fonctionnement de la méthode. Et à chaque fois que l'on modifie ou ajoute un bout de code, on lance tous les tests unitaires pour vérifier qu'il n'y a pas de régressions. Cela permet ainsi de garantir un minimum de qualité du code, et un fonctionnement relativement robuste de l'application.
Créer des tests avec PHPUnit ¶
L'utilisation du framework de tests PHPUnit est la solution "officielle". Lire son manuel pour en savoir plus sur son fonctionnement. De plus, il n'est pas fourni avec Jelix, vous devez donc l'installer (il l'est automatiquement si vous installez Jelix par Composer).
Cependant, Jelix fourni de quoi l'intégrer au mieux dans votre application. La
commande create-jelix-app
a créé un script tests/runtests.php
dans votre
application (ou copier le fichier lib/jelix-scripts/templates/tests/runtests.php
).
Vous devez exécuter ce fichier en ligne de commande plutot que PHPUnit pour
lancer les tests. Il vous évite de créer un fichier phpunit.xml
, et lance
les tests qui sont stockés dans le repertoire tests/
de chacun de vos
modules.
Pour créer des tests :
- les fichiers doivent être dans le répertoire
tests/
de vos modules - les noms des fichiers doivent avoir un suffix
.pu.php
(et non pasTests.php
comme c'est le cas en général pour PHPUnit) - lancez
php runtests.php --all-modules
pour démarrer les tests de tout les modules - lancez
php runtests.php --module foo
pour démarrer les tests du module "foo" - vous pouvez ajouter l'option
--testtype xxxx
et cela lancera uniquement les tests des fichiers en*.xxxx.pu.php
. Ainsi, vous pouvez séparer par exemple, les tests unitaires des tests fonctionnels.
Vous pouvez aussi ajouter les options usuelles de PHPUnit.