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?

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.


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.