Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Techniques de test avancées en Python
Search
Ronan Amicel
September 23, 2017
Programming
0
280
Techniques de test avancées en Python
Présentation à la conférence PyCon FR à Toulouse le 23 octobre 2017.
Ronan Amicel
September 23, 2017
Tweet
Share
More Decks by Ronan Amicel
See All by Ronan Amicel
Développeur : ce qu’on ne m’a pas appris à l’école
ronnix
1
320
Refactoring: la méthode Mikado
ronnix
0
260
Product Development in a Startup
ronnix
2
250
Performance des frameworks web : Python vs The World (v1.1)
ronnix
1
8k
Je teste mon code avec py.test
ronnix
1
270
Performance des frameworks web : Python vs The World
ronnix
0
360
Introduction au Customer Development
ronnix
1
120
Rendez votre code Python plus beau !
ronnix
1
540
Trompez-vous, et vite !
ronnix
2
250
Other Decks in Programming
See All in Programming
2024-10-01 dev2next - Observability for Modern JVM Applications
jonatan_ivanov
0
140
"Swarming" をコンセプトに掲げるアジャイルチームのベストプラクティス
boykush
2
260
Cloud Adoption Frameworkにみる組織とクラウド導入戦略(縮小版)
tomokusaba
1
230
データフレームライブラリ徹底比較
daikikatsuragawa
2
110
複数プロダクトの技術改善・クラウド移行に向き合うチームのフレキシブルなペア・モブプログラミングの実践 / Flexible Pair Programming And Mob Programming
honyanya
0
240
Hi, have you met Kotlin Multiplatform? | DevFest Vienna 2024
prof18
0
190
現場から考えるソフトウェアエンジニアリングの価値と実験
nomuson
1
130
知られざるNaNの世界
hole
1
610
Новый уровень ML-персонализации Lamoda: Как мы усилили ее в каталоге и перенесли на другие продукты
lamodatech
0
270
もう実家に手頃な情シス娘は不要!Bedrockでもう一人の娘を作る
komakichi
1
130
Competitionsだけじゃない! Kaggle Notebooks Grandmasterのすすめ
corochann
2
750
DevFest Android in Korea 2024 - 안드로이드의 문단속 : 앱을 지키는 암호화 이야기
mdb1217
1
160
Featured
See All Featured
Building Applications with DynamoDB
mza
90
6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Scaling GitHub
holman
458
140k
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
Facilitating Awesome Meetings
lara
49
6k
Making Projects Easy
brettharned
115
5.9k
WebSockets: Embracing the real-time Web
robhawkes
59
7.4k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
A Tale of Four Properties
chriscoyier
156
22k
Building Adaptive Systems
keathley
38
2.2k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Transcript
Techniques de test avancées en Python Ronan Amicel @amicel PyCon
FR — 23 septembre 2017 — Toulouse
Ronan Amicel Développeur Consultant Coach technique Startups http://pocketsensei.fr/
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é
0 Préambule : py.test
$ py.test • Un outil en ligne de commande pour
lancer vos tests : • découverte • exécution • affichage des résultats
import pytest • Un framework pour écrire vos tests •
avec très peu de bla bla • avec un mécanisme de fixtures très flexible
1 Techniques pour contrôler l’exécution des tests
Sélection
Exécuter tous les tests $ py.test
Exécuter seulement certains tests $ py.test tests/unit/ $ py.test toto.py
$ py.test --pyargs mon.module
Un test bien précis $ py.test fichier.py::fonction $ py.test fichier.py::Classe::methode
Seulement les tests dont le nom contient un mot-clé $
py.test -k toto $ py.test -k 'toto or tata'
Collecter les tests uniquement $ py.test --collect-only
Quand les tests sont au rouge
Lancer seulement les tests qui ont échoué la dernière fois
$ py.test --lf $ py.test --last-failed
Lancer d'abord les tests qui ont échoué la dernière fois
$ py.test --ff $ py.test --failed-first
S’arrêter à la première erreur $ py.test -x $ py.test
--exitfirst
Afficher les valeurs des variables locales $ py.test -l $
py.test --showlocals
Basculer sur le débogueur en cas d’erreur $ py.test --pdb
Combo ! $ py.test --ff -x -l --pdb
pytest.ini [pytest] addopts = --ff -x -l --pdb
Plugins
Lancer ses tests en parallèle $ pip install pytest-xdist $
py.test -n4
Couverture de tests $ pip install pytest-cov $ py.test --cov
myproj
tox
pyenv
2 Techniques pour mettre en place le contexte
3 Techniques pour paramétrer les tests
4 Techniques pour vérifier ce qui s'est passé
Voir les exemples sur GitHub https://github.com/ronnix/pyconfr2017/
En savoir plus http://pytest.org/ https://tox.readthedocs.io/ https://github.com/pyenv/pyenv http://hypothesis.readthedocs.io/
Questions ?
Merci !