Raccourcis : Contenu - rubriques - sous rubriques
EN FR

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 pas Tests.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.