Configuration minimum pour lancer phpunit avec Drupal

A l'heure de la virtualisation et de la containerisation, on n'a pas forcément tout un environnement lamp/wamp/mamp d'installé sur son local.

Sous Drupal 8.x, Si l'on souhaite lancer des test phpunit, nous n'avons besoin que de 3 applications :

  • PHP
  • SQLITE
  • Composer

Suivant votre OS, vous pouvez installer les 2 premiers :

  • Windows : avec leurs binaires
  • Linux : via les dépots
  • OSX : via homebrew

Pour composer, suivre les instructions sur https://getcomposer.org/download/.

Habituellement, nous aurions également besoin d'un serveur apache ou nginx pour pouvoir accéder à notre application, mais depuis la version 8.4.x, Drupal embarque ce qu'il faut pour lancer un serveur depuis php.

Lancer la commande :

php -S localhost:8888 .ht.router.php

Il ne reste plus qu'à configurer phpunit en copiant le fichier phpunit.xml.dist en phpunit.xml :

cp core/phpunit.xml.dist core/phpunit.xml

Créer le répertoire sites/default/simpletest et ajuster la configuration suivant vos besoins. Exemple :

    <!-- Example SIMPLETEST_BASE_URL value: http://localhost -->

    <env name="SIMPLETEST_BASE_URL" value="http://localhost:8888"/>

    <!-- Example SIMPLETEST_DB value: mysql://username:password@localhost/databasename#table_prefix -->

    <env name="SIMPLETEST_DB" value="sqlite://localhost/tmp/test.sqlite"/>

    <!-- Example BROWSERTEST_OUTPUT_DIRECTORY value: /path/to/webroot/sites/simpletest/browser_output -->

    <env name="BROWSERTEST_OUTPUT_DIRECTORY" value="/chemin/vers/drupal/sites/default/simpletest/browser_output"/>

Faire un composer install pour installer les dépendances de Drupal et obtenir phpunit.

Il ne reste plus qu'à lancer phpunit en ligne de commande ou depuis phpstorm.

Pour configurer phpstorm, aller dans le menu PHPStorm > Preferences, chercher PHP.

Ajouter votre binaire PHP puis chercher phpunit et dans Test Frameworks, configurer phpunit.

 

PHPStorm configurer son binaire PHP PHPStorm configurer phpunit pour Drupal

Pour lancer un test, faire un clic droit sur le fichier ou le répertoire dans l'arborescence des fichier de votre projet dans phpstorm puis choisir Run '(<repertoire> PHPUnit)'.

Tests javascript

Si vous avez besoin d'executer des tests avec du Javascript, Drupal utilise WebDriver.

Comme indiqué sur la documentation Drupal https://www.drupal.org/docs/8/phpunit/running-phpunit-javascript-tests :

  • Vous avez besoin de Google Chrome ou chromium.
  • Il faut ensuite télécharger la version de chromedriver qui correspond à votre version de chrome : https://sites.google.com/a/chromium.org/chromedriver/ ou une alternative https://www.drupal.org/node/2941464

Puis lancer le chromedriver sur le port 4444 :

chromedriver --port=4444

Avec le serveur PHP + le chromedriver lancés en font, les tests javascripts s'exécuteront.

Ce contenu est mis à disposition selon les termes de la Creative Commons - Attribution - Pas d'Œuvre dérivée 4.0 International.
Vous êtes libre de :

  • Partager — copier, distribuer et communiquer le contenu par tous moyens et sous tous formats,
    à condition de :
    • Créditer l’œuvre (mentionner le nom IOSAN et fournir un lien vers l’article original),
    • Ne pas modifier le contenu,
    • Ne pas utiliser ce contenu à des fins commerciales sans autorisation écrite.
Drupal > Un nouveau module pour supprimer les divs entourant vos champs à la demande

Drupal > Un nouveau module pour supprimer les divs entourant vos champs à la demande

FrankenPHP et Drupal, ça dit quoi côté performances ?

FrankenPHP et Drupal, ça dit quoi côté performances ?

Rendre vos Drupal AJAX Callback générique c'est possible avec notre nouveau module contrib

Rendre vos Drupal AJAX Callback générique c'est possible avec notre nouveau module contrib