web-dev-qa-db-fra.com

Imprimer les temps d'exécution des tests et épingler les tests lents avec py.test

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 testeur prend trop de temps, ce qui entraîne l'interruption du testeur. 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 localiser plus facilement les tests problématiques?

75
Mikko Ohtamaa

Je ne suis pas sûr que cela résoudra votre problème, mais vous pouvez passer --durations=N pour imprimer les tests N les plus lents après la fin de la suite de tests.

115
Bruno Oliveira

Vous pouvez passer le numéro avec --durations

pytest --durations=0 — Show all times for tests and setup and teardown

pytest --durations=1 — Just show me the slowest

pytest --durations=50 — Slowest 50, with times, … etc

Prendre référence dans: https://medium.com/@brianokken/pytest-durations-0-show-all-times-for-tests-and-setup-and-teardown-848dccac85db

Ou: https://docs.pytest.org/en/latest/usage.html#profiling-test-execution-duration

3
Phuong