Comment pouvez-vous mettre en place PHP + xDebug + (x) + unité Eclipse pour travailler avec des points d'arrêt dans les tests unitaires?
-
22-08-2019 - |
Question
Ont essayé pendant un certain temps pour que cela fonctionne correctement mais pas de chance. Au fond, je Eclipse (3.3) avec les outils de développement de PHP (PDT) et le plug-in PDT XDebug ainsi que le plugin Eclipse SimpleTest.
Ce que je veux faire est le code de débogage invoqué par des tests unitaires SimpleTest. SimpleTest peut voir clairement XDebug, parce que je peux générer des rapports de couverture de code, mais il ne veut tout simplement pas arrêter sur des points d'arrêt.
Modifier : Faut-il ajouter que XDebug et points d'arrêt fonctionnent très bien dans l'éclipse, mais pas quand il est invoqué par SimpleTest
Quelqu'un at-il le mettre en place avec succès? Il y a beaucoup de Guff docs autour et peu à la manière des informations utiles.
Merci!
La solution
Assurez-vous que vous avez la bonne version XDebug pour votre version de PHP et d'ajouter ceci au début de votre fichier php.ini:
[xdebug]
zend_extension=full_path_to_your_xdebug.so
xdebug.default_enable=On
xdebug.remote_enable=On
xdebug.remote_handler="dbgp"
xdebug.remote_host="localhost"
xdebug.remote_port=9000
Ensuite, faites un apachectl graceful
et un phpinfo
et assurez-vous XDebug est présent et actif. Dans ce cas, tout devrait bien fonctionner. Je sais que cela fait pour moi.
modifier. Je lui ai répondu avant de lire toute la question
avant d'exécuter le script que vous devez définir la variable d'environnement;
export XDEBUG_CONFIG="idekey=session_name"
Il est peut-être possible de le faire à partir de php, mais je ne peux pas tester ceci:
putenv('XDEBUG_CONFIG="idekey=session_name"');
Vous devez vous assurer que le binaire php que vous utilisez a l'extension XDebug chargé, sur mon système le module apache a, mais l'interprète par défaut CLI ne est pas, mais j'exécuter différentes versions sur le but.
Il y a quelques bonne documentation ici
Autres conseils
Pour aller plus loin sur la réponse de Kris, Si vous gérez vos environnements de production et de développement sur le même serveur, il est une bonne idée de reléguer vos paramètres de Xdebug soit à un php include
ou à ceux de votre virtualhosts
qui sont dédiés à dev
ou testing
environnements:
-
la syntaxe pour virtualhosts est
<virtualHost ....> (...) # Xdebug ENV php_flag xdebug.auto_trace on php_flag xdebug.idekey session_name php_flag xdebug.profiler_enable_trigger 1 php_flag xdebug.(...) (...)