Imprimir tiempos de ejecución de pruebas y precisar pruebas lentas con py.test

118

Estoy ejecutando pruebas unitarias en un servidor CI usando py.test. Las pruebas utilizan recursos externos obtenidos a través de la red. A veces, el corredor de prueba tarda demasiado, lo que hace que el corredor de prueba sea abortado. No puedo repetir los problemas a nivel local.

¿Hay alguna manera de hacer que py.test imprima los tiempos de ejecución de la prueba (lenta), para que sea más fácil identificar las pruebas problemáticas?

Mikko Ohtamaa
fuente

Respuestas:

172

No estoy seguro de que esto resuelva su problema, pero puede pasar --durations=Na imprimir las Npruebas más lentas después de que finalice el conjunto de pruebas.

Úselo --durations=0para imprimir todo.

Bruno Oliveira
fuente
88
Si pasa el --durations=0tiempo de ejecución de TODAS las pruebas, se informará.
oLas
¿Sabe si existe la posibilidad de agregarlo al informe de cobertura HTML generado? ¿Similar a agregar un .coveragercarchivo con el contenido [run] branch = Trueagrega información de cobertura de ramificación?
Martin Thoma
Deberá agregar esa información usted mismo, pytest-html tiene soporte para insertar contenido adicional.
Bruno Oliveira
4
@oLas: Eso no es cierto: si las pruebas son "demasiado rápidas", el tiempo medido aparentemente puede convertirse en 0 y aún así se filtrarán. Un umbral negativo tampoco ayuda en este caso. Otra molestia con este enfoque es que pytest siempre imprimirá, (0.00 durations hidden. Use -vv to show these durations.)lo que no tiene ningún sentido.
bluenote10