Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Techniques de test avancées en Python Ronan Amicel @amicel PyCon FR — 23 septembre 2017 — Toulouse
Slide 2
Slide 2 text
Ronan Amicel Développeur Consultant Coach technique Startups http://pocketsensei.fr/
Slide 3
Slide 3 text
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é
Slide 4
Slide 4 text
0 Préambule : py.test
Slide 5
Slide 5 text
$ py.test • Un outil en ligne de commande pour lancer vos tests : • découverte • exécution • affichage des résultats
Slide 6
Slide 6 text
import pytest • Un framework pour écrire vos tests • avec très peu de bla bla • avec un mécanisme de fixtures très flexible
Slide 7
Slide 7 text
1 Techniques pour contrôler l’exécution des tests
Slide 8
Slide 8 text
Sélection
Slide 9
Slide 9 text
Exécuter tous les tests $ py.test
Slide 10
Slide 10 text
Exécuter seulement certains tests $ py.test tests/unit/ $ py.test toto.py $ py.test --pyargs mon.module
Slide 11
Slide 11 text
Un test bien précis $ py.test fichier.py::fonction $ py.test fichier.py::Classe::methode
Slide 12
Slide 12 text
Seulement les tests dont le nom contient un mot-clé $ py.test -k toto $ py.test -k 'toto or tata'
Slide 13
Slide 13 text
Collecter les tests uniquement $ py.test --collect-only
Slide 14
Slide 14 text
Quand les tests sont au rouge
Slide 15
Slide 15 text
Lancer seulement les tests qui ont échoué la dernière fois $ py.test --lf $ py.test --last-failed
Slide 16
Slide 16 text
Lancer d'abord les tests qui ont échoué la dernière fois $ py.test --ff $ py.test --failed-first
Slide 17
Slide 17 text
S’arrêter à la première erreur $ py.test -x $ py.test --exitfirst
Slide 18
Slide 18 text
Afficher les valeurs des variables locales $ py.test -l $ py.test --showlocals
Slide 19
Slide 19 text
Basculer sur le débogueur en cas d’erreur $ py.test --pdb
Slide 20
Slide 20 text
Combo ! $ py.test --ff -x -l --pdb
Slide 21
Slide 21 text
pytest.ini [pytest] addopts = --ff -x -l --pdb
Slide 22
Slide 22 text
Plugins
Slide 23
Slide 23 text
Lancer ses tests en parallèle $ pip install pytest-xdist $ py.test -n4
Slide 24
Slide 24 text
Couverture de tests $ pip install pytest-cov $ py.test --cov myproj
Slide 25
Slide 25 text
tox
Slide 26
Slide 26 text
pyenv
Slide 27
Slide 27 text
2 Techniques pour mettre en place le contexte
Slide 28
Slide 28 text
3 Techniques pour paramétrer les tests
Slide 29
Slide 29 text
4 Techniques pour vérifier ce qui s'est passé
Slide 30
Slide 30 text
Voir les exemples sur GitHub https://github.com/ronnix/pyconfr2017/
Slide 31
Slide 31 text
En savoir plus http://pytest.org/ https://tox.readthedocs.io/ https://github.com/pyenv/pyenv http://hypothesis.readthedocs.io/
Slide 32
Slide 32 text
Questions ?
Slide 33
Slide 33 text
Merci !