Drupal 8 complète le cadre de test basé sur Simpletest avec PHPUnit , et Simpletest pourrait être supprimé dans Drupal 9.
Je ne suis pas encore passé à Drupal 8, mais je me demandais comment écrire des tests existants dans PHPUnit (pour suivre la tendance) pour Drupal 7, plutôt dans Simpletest?
Existe-t-il une méthode ou un module pour intégrer PHPUnit à Drupal 7?
Il y en a peu comme phpunit ou drunit , mais ils ne sont pas pour Drupal 7.
Réponses:
Vous pouvez exécuter des tests PHPUnit en amorçant Drupal dans chacun de vos fichiers de test. Ce n'est pas idéal, mais ça marche.
la source
PHPUnit fournit une belle API pour construire les objets, contrairement au test simple de Drupal. Il y a une bibliothèque disponible dans gist pour intégrer PHPUnit avec Drupal 7 .
Pour exécuter ces scripts, vous devez extraire ce référentiel gist . Pour exécuter des tests unitaires en ligne de commande, allez simplement sur un site Drupal (ie.
<DRUPAL_ROOT>/sites/default
) Et utilisez dphpunit.bash comme vous utiliseriez la commande phpunit.Le script se compose de 3 fichiers:
Source: http://devblog.more-onion.com/content/writing-unit-tests-drupal-7
bootstrap.inc.php
dphpunit.bash
drun-phpunit.php
Il existe une autre bibliothèque disponible pour l'intégration PHPUnit avec Drupal 7: https://github.com/sebastianbergmann/phpunit
Plus d'informations sur ces scripts peuvent être consultées ici: http://thomaslattimore.com/blog/using-phpunit-with-drupal-7
la source
Il existe une solution de contournement avec le fichier de configuration.
Gist: https://gist.github.com/permanovd/cb9c02920c49a29c97653f4f697147b1
C'est tout. Vous pouvez maintenant démarrer vos tests de plusieurs manières.
1. CLI
phpunit -c phpunit.xml.dist QuestionValidationValueOptionsInputTest /yoursite.dir/public_html/profiles/standard/modules/some_module/tests/QuestionValidationTest.php
où:
2. IDE (phpstorm)
Vous devez ajouter la configuration de test de fonctionnement
Et pas besoin d'inclure du code d'amorçage drupal dans chaque test.
Remarque
Vous pouvez avoir des problèmes avec les tests en raison d'une mauvaise version php de votre environnement.
Lectures complémentaires:
https://phpunit.de/manual/current/en/organizing-tests.html
la source