Techniques de test avancées en Python

B06b5d4777e2734feb91298062539ec8?s=47 Ronan Amicel
September 23, 2017

Techniques de test avancées en Python

Présentation à la conférence PyCon FR à Toulouse le 23 octobre 2017.

B06b5d4777e2734feb91298062539ec8?s=128

Ronan Amicel

September 23, 2017
Tweet

Transcript

  1. Techniques de test avancées en Python Ronan Amicel @amicel PyCon

    FR — 23 septembre 2017 — Toulouse
  2. Ronan Amicel Développeur
 Consultant
 Coach technique
 Startups http://pocketsensei.fr/

  3. Le plan 1. Contrôler l’exécution des tests 2. Mettre en

    place le contexte 3. Paramétrer les tests 4. Vérifier ce qui s’est passé
  4. 0 Préambule : py.test

  5. $ py.test • Un outil en ligne de commande pour

    lancer vos tests : • découverte • exécution • affichage des résultats
  6. import pytest • Un framework pour écrire vos tests •

    avec très peu de bla bla • avec un mécanisme de fixtures très flexible
  7. 1 Techniques pour contrôler l’exécution des tests

  8. Sélection

  9. Exécuter tous les tests $ py.test

  10. Exécuter seulement
 certains tests $ py.test tests/unit/ $ py.test toto.py

    $ py.test --pyargs mon.module
  11. Un test bien précis $ py.test fichier.py::fonction $ py.test fichier.py::Classe::methode

  12. Seulement les tests dont le nom contient un mot-clé $

    py.test -k toto $ py.test -k 'toto or tata'
  13. Collecter les tests uniquement $ py.test --collect-only

  14. Quand les tests
 sont au rouge

  15. Lancer seulement les tests qui ont échoué la dernière fois

    $ py.test --lf $ py.test --last-failed
  16. Lancer d'abord les tests qui ont échoué la dernière fois

    $ py.test --ff $ py.test --failed-first
  17. S’arrêter à la première erreur $ py.test -x $ py.test

    --exitfirst
  18. Afficher les valeurs des variables locales $ py.test -l $

    py.test --showlocals
  19. Basculer sur le débogueur
 en cas d’erreur $ py.test --pdb

  20. Combo ! $ py.test --ff -x -l --pdb

  21. pytest.ini [pytest] addopts = --ff -x -l --pdb

  22. Plugins

  23. Lancer ses tests en parallèle $ pip install pytest-xdist $

    py.test -n4
  24. Couverture de tests $ pip install pytest-cov $ py.test --cov

    myproj
  25. tox

  26. pyenv

  27. 2 Techniques pour mettre en place le contexte

  28. 3 Techniques pour paramétrer les tests

  29. 4 Techniques pour vérifier ce qui s'est passé

  30. Voir les exemples sur GitHub https://github.com/ronnix/pyconfr2017/

  31. En savoir plus http://pytest.org/ https://tox.readthedocs.io/ https://github.com/pyenv/pyenv http://hypothesis.readthedocs.io/

  32. Questions ?

  33. Merci !