PHPUnit
Lance les tests PHPUnit d'un projet Drupal, avec une base MariaDB et un serveur web local.
Règles de déclenchement et cache Composer : voir le fonctionnement des jobs QA. À la différence de phpcs et de phpstan, ce job est bloquant par défaut.
Fonctionnement
- Un service
mariadbest démarré à côté du job, joignable sous le nommariadb(basedrupal, utilisateurdrupal, mot de passedrupal). - Le job crée
<DRUPAL_ROOT_PATH>/sites/simpletest, copiefiles/testing/phpunit.xmlà la racine du projet, puis lancecomposer install. - Il démarre le serveur web intégré de PHP sur
localhost:8000, avecDRUPAL_ROOT_PATHpour racine. Son journal va dansfiles/testing/php.log. - Il lance
php ./vendor/bin/phpunit.
Le job écrit un rapport JUnit, phpunit-report.xml, et déclare à GitLab celui de <DRUPAL_ROOT_PATH>/phpunit-report.xml pour l'onglet « Tests » de la pipeline. files/testing/php.log est publié en artefact, conservé un jour.
Ce que le projet doit fournir
files/testing/phpunit.xml: la configuration PHPUnit, qui pointe sur la base et le serveur du job, par exemple :SIMPLETEST_BASE_URL:http://localhost:8000;SIMPLETEST_DB:mysql://drupal:drupal@mariadb/drupal.
- Le dossier
files/testing/dans le dépôt : le job y écrit son journal.
Utilisation
variables:
CI_TEMPLATE_VERSION: &CI_TEMPLATE_VERSION main
PHPUNIT_DOCKER_IMAGE: wodby/drupal-php:8.3-dev
include:
- project: kgaut/gitlab-ci-templates
ref: *CI_TEMPLATE_VERSION
file:
- '/templates/generic/stages-variables-extends.yml'
- '/templates/qa/phpunit.yml'
Variables
| Nom de la variable | Contenu | Exemple | Remarque |
|---|---|---|---|
| PHPUNIT_DOCKER_IMAGE | Image docker à utiliser pour exécuter les tests | wodby/drupal-php:8.3-dev | par défaut wodby/drupal-php:7.4-dev ; à adapter au PHP du projet |
| PHPUNIT_ALLOW_FAILURE | À "true", un échec du job n'arrête pas la pipeline | "true" | par défaut "false" |
| DRUPAL_ROOT_PATH | Chemin relatif à la racine du projet vers le docroot | web | par défaut web |
Liste des jobs
phpunit
Lance les tests PHPUnit (stage QA).