Impression des temps d'exécution des tests et fixation des tests lents avec py.test


121

J'exécute des tests unitaires sur un serveur CI en utilisant py.test. Les tests utilisent des ressources externes récupérées sur le réseau. Parfois, le test runner prend trop de temps, ce qui entraîne son abandon. Je ne peux pas répéter les problèmes localement.

Existe-t-il un moyen de faire en sorte que py.test imprime les temps d'exécution des tests (lents), afin de déterminer plus facilement les tests problématiques?

Réponses:


175

Je ne suis pas sûr que cela résoudra votre problème, mais vous pouvez réussir --durations=Nà imprimer les Ntests les plus lents une fois la suite de tests terminée.

Utilisez --durations=0pour tout imprimer.


89
Si vous passez le --durations=0temps d'exécution pour TOUS les tests seront signalés.
oLas

Savez-vous s'il est possible de l'ajouter au rapport de couverture HTML généré? Similaire à l'ajout d'un .coveragercfichier avec le contenu [run] branch = Trueajoute des informations de couverture de branchement?
Martin Thoma

Vous devrez ajouter ces informations vous-même, pytest-html prend en charge l'insertion de contenus supplémentaires.
Bruno Oliveira

4
@oLas: Ce n'est pas vrai: si les tests sont "trop ​​rapides", le temps mesuré peut apparemment devenir 0 et ils seront toujours filtrés. Un seuil négatif n'aide pas non plus dans ce cas. Un autre inconvénient de cette approche est que pytest s'imprimera toujours, (0.00 durations hidden. Use -vv to show these durations.)ce qui n'a aucun sens.
bluenote10

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.