Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Xdebug and Drupal8 tests (PhpUnit and Simpletest)

2.660 visualizaciones

Publicado el

My personal experience with Drupal8 and test :)

Publicado en: Software
  • Sé el primero en comentar

Xdebug and Drupal8 tests (PhpUnit and Simpletest)

  1. 1. Xdebug with PHPUnit In Drupal 8
  2. 2. About me
  3. 3. Intro: XDebug Depuración en PHP: ● print_r(), var_dump(), … ● FirePHP ● Kint , Krumo, Ladybug ● phpdbg incluido ya en 5.6
  4. 4. Intro: XDebug ● Debugging and profiling PHP extension ● Show log trace information ● Allow step by step debugging More info
  5. 5. Intro: XDebug - My experience I feel secure on my own!!! but It’s not the holy grail
  6. 6. Xdebug installation + configuration: PHP extension + System configuration + IDE configuration + Browser configuration
  7. 7. Xdebug installation: PHP extension sudo apt-get install php5-xdebug http://xdebug.org/docs/install
  8. 8. Xdebug installation: System configuration /etc/php5/apache2/php.ini AND/OR /etc/php5/cli/php.ini ● zend_extension="/usr/lib/php5/20121212/xdebug.so" ● xdebug.remote_enable=1 ● xdebug.remote_host= IDE host ● xdebug.remote_port="9000" ● xdebug.profiler_enable=1 ● xdebug.profiler_output_dir="/tmp" ● xdebug.idekey="drupal8"
  9. 9. How do we check it? Web: echo phpinfo();
  10. 10. Xdebug installation: How do we check it? Console (cli): php -v & php -i | grep remote
  11. 11. IDE configuration ● Set Xdebug in PhpStorm ● Add a Php remote debug / Php Unit instance in PhpStorm ● Set session id (ide key)
  12. 12. IDE configuration: Set XDebug ● Configure Php debug ● Configure server
  13. 13. IDE configuration: Debug instance Open Debug panel pressing F9 and select Edit configuration Add new PHP Remote Debug instance Set the ide key (session id) and server
  14. 14. Browser configuration ● The IDE needs an Id to start the debug ● The browser provides the Id (session_id) ● Chrome / Firefox extension to provide Id ○ Xdebug helper
  15. 15. Use case : Debug code (I) Environment configuration: ● Drupal 8 installed in local ● XDebug installed in local ● PhpStorm configured with an instance Use case: ● Add breakpoint in code ● Run debug mode ● Navigate to stop in the breakpoint This is my day by day use of XDebug.
  16. 16. Use case : Debug code (II) Environment configuration: ● Drupal 8 installed in remote environment (vagrant) ● XDebug installed in remote environment (vagrant) ● PhpStorm configured with a sync code to remote env. Use case: ● Add breakpoint in code ● Run debug mode ● Navigate to stop in the breakpoint This is @LuisGonRod day by day use of XDebug.
  17. 17. Use case : Debug code (III) Question: What if @LuisGonRod and me want debug in the same remote environment? http://derickrethans.nl/debugging-with-multiple-users.html
  18. 18. Use case : Debug code (III)
  19. 19. Use case : Debug tests (I) Environment configuration: ● Drupal 8 installed in local ● XDebug installed in local ● PhpStorm configured with an instance Running test by using browser ● Activate module Testing ● Run test DrupalnodeTestsPageEditTest Use case ● Add breakpoint in test code ● Run debug mode ● Run test and wait to stop in breakpoint Sometimes never stop...at least for me
  20. 20. Use case : Debug tests (II) Environment configuration: ● Drupal 8 installed in local ● XDebug installed in local ● PhpStorm configured with an instance Running test by using Php cli ● Activate module Testing ● Run test using ○ run-tests.sh script ○ drush test-run
  21. 21. Use case : Debug tests - run-tests.sh (III) XDEBUG_CONFIG="idekey=drupal8" sudo php core/scripts/run-tests.sh --php /usr/bin/php --url http://local.drupal --class "DrupalnodeTestsPageEditTest" For me it’s not working, right now :( configuring the script using PhpStorm it works
  22. 22. Use case : Debug tests - run-tests.sh (IV) ● Go to debug configuration (F9) ● Add a Php Script instance ● Configure it ○ File: path to run-tests.sh ○ Arguments: The run-tests parameters ○ Environment variables: XDEBUG_CONFIG with idekey
  23. 23. Use case : Debug tests - drush test-run (V) drush test-run --uri= local.drupal DrupalnodeTestsPageEditTest
  24. 24. ...And what about PHPUnit? We can debug PHPUnit tests using Phpstorm adding a PHPUnit or PHPUnit on server instance
  25. 25. what about PHPUnit and php cli? We can run test through runt-tests.sh script or php scripts/run-tests.sh --php /usr/bin/php PHPUnit
  26. 26. And now...what?
  27. 27. Do you know why we have moustache? ● Configuraciones especiales de Xdebug ● Si lanzamos los test por consola no tenemos la cookie del navegador.
  28. 28. Movember and Drupal community If you can, please, donate. you won’t be the only one, maybe in that room you find some moustaches in @jose_lakatos @jsbalsera @penyaskito and @gloob http://es.movember.com/en/team/1674337 http://es.movember.com/mospace/10983485

×