pytest-timeout

Software captura de pantalla:
pytest-timeout
Detalles de software:
Versión: 0.3
Fecha de carga: 20 Feb 15
Licencia: Libre
Popularidad: 136

Rating: 5.0/5 (Total Votes: 1)

PYtest-timeout es un plugin para py.test que terminará pruebas después de un tiempo de espera determinado. & Nbsp; Al hacer esto obtendrá un volcado de pila de todos los subprocesos que se ejecutan en el momento. Esto es útil cuando, por ejemplo, la realización de pruebas en virtud de un servidor de integración continua (CI).
Uso
Instalar vía:
PIP instalar PYtest-timeout
y luego habilitar el plugin, ya sea desde la línea de comandos:
py.test -p tiempo de espera
o más convenientemente desde el interior del módulo de prueba o conftest.py:
pytest_plugins = 'tiempo de espera'
Puede cambiar el tiempo de espera utilizando el parámetro --timeout que establece el tiempo de espera en segundos.
¿Cómo funciona?
Este plugin funciona en una de dos maneras. Si el sistema es compatible con la señal SIGALRM una alarma se programará cuando las pruebas se inicia y se cancela cuando termina. Si la alarma expira durante la prueba el manejador de señales utilizará pytest.fail () para interrumpir la prueba después de haber abandonado la pila de otros subprocesos que se ejecutan en stderr.
Si el sistema no admite SIGALRM o se utilizó la opción --nosigalrm entonces un hilo temporizador se utiliza en su lugar. Una vez más, si el contador no se cancela antes de su vencimiento se volcará la pila de todas las discusiones en stderr antes de terminar todo el proceso py.test usando os._exit (1).
La desventaja del método SIGALRM es que la señal es utilizada por el framework de pruebas. Si esta señal es utilizada por el código bajo prueba que tendrá que utilizar la opción --nosigalrm. La limitación de la rosca temporizador sin embargo es la sobrecarga adicional de crear un hilo para cada prueba ejecutada y el hecho de que después de un tiempo de espera de todo el proceso se detiene y se ejecutan sin más pruebas.

¿Cuál es nueva en esta versión:.

  • Se ha añadido la variable de entorno PYTEST_TIMEOUT como una forma de especificar el tiempo de espera (se cierra la edición # 2)
  • Más flexibles argumento marcador de análisis:. Ahora puede especificar el método que utiliza un argumento posicional
  • El plugin está habilitado de forma predeterminada. Ya no es necesario especificar el tiempo de espera = 0 en el archivo de configuración o en la línea de comandos simplemente para que un marcador iba a funcionar.

¿Qué hay de nuevo en la versión 0.2:

  • Añadir un marcador de modificar el retardo de tiempo de espera mediante unpytest .timeout (N) sintaxis, gracias a Laurant Brack para el código inicial.
  • Permita que el marcador de tiempo de espera para seleccionar el método de tiempo de espera con el argumento de método de palabras clave.
  • Cambiar el nombre de la opción --nosigalrm a --method = hilo para el apoyo futuro a prueba para eventlet y GEvent. Gracias a Ronny Pfannschmidt por la pista.
  • Agregar tiempo de espera y timeout_method artículos para el archivo de configuración para que pueda activar y configurar el plugin utilizando el archivo ini. Gracias a Holger Krekel y Ronny Pfannschmidt por los consejos.
  • Probado (y fijos) para Python 2.6, 2.7 y 3.2.

Requisitos :

  • Python
  • py.test

Programas parecidos

Comentarios a la pytest-timeout

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!