pytest-timeout

Software screenshot:
pytest-timeout
Dettagli del software:
Versione: 0.3
Data di caricamento: 20 Feb 15
Sviluppatore: Floris Bruynooghe
Licenza: Libero
Popolarità: 7

Rating: nan/5 (Total Votes: 0)

pytest-timeout è un plugin per py.test che terminerà i test dopo un certo timeout & nbsp;. Nel fare ciò si otterrà un dump dello stack di tutti i thread in esecuzione al momento. Questo è utile quando ad esempio esecuzione di prove in un server di integrazione continua (CI).
Utilizzo
Installare via:
Pip installare pytest-timeout
e quindi attivare il plugin, sia dalla riga di comando:
py.test -p timeout
o più convenientemente all'interno del modulo di test o conftest.py:
pytest_plugins = 'timeout'
È possibile modificare il timeout utilizzando il parametro --timeout che imposta il timeout in secondi.
Come funziona
Questo plugin funziona in due modi. Se il sistema supporta il segnale SIGALRM un allarme viene programmato quando il test inizia e annullato quando finisce. Se l'allarme scade durante la prova il gestore di segnale utilizzerà pytest.fail () per interrompere il test dopo aver scaricato la pila di altri thread in esecuzione a stderr.
Se il sistema non supporta SIGALRM o l'opzione --nosigalrm è stato utilizzato poi un filo timer verrà utilizzato invece. Ancora una volta, se questo timer non viene annullato prima della scadenza che permette di scaricare le pila di tutte le discussioni su stderr prima di terminare l'intero processo py.test usando os._exit (1).
Lo svantaggio del metodo SIGALRM è che il segnale è utilizzato dal quadro di prova. Se questo segnale viene utilizzato dal codice in prova è necessario utilizzare l'opzione --nosigalrm. La limitazione del filo temporizzatore è però l'overhead aggiuntivo di creare un filo per ogni test eseguito e il fatto che dopo un timeout l'intero processo viene interrotto e ulteriori prove vengono eseguite.

Cosa è nuovo in questa versione:.

  • Aggiunta la variabile d'ambiente PYTEST_TIMEOUT come un modo di specificare il timeout (chiude numero # 2)
  • Più flessibile argomento marcatore analisi:. Ora è possibile specificare il metodo che utilizza un argomento posizionale
  • Il plugin è ora abilitato di default. Non c'è più bisogno di specificare timeout = 0 nel file di configurazione o sulla riga di comando semplicemente così che un marcatore avrebbe funzionato.

Cosa c'è di nuovo in versione 0.2:

  • Aggiungi un marcatore per modificare il tempo di timeout utilizzando unpytest .timeout (N) sintassi, grazie a Laurant Brack per il codice iniziale.
  • Lasciare che il marcatore timeout per selezionare il metodo di timeout utilizzando l'argomento metodo di parola.
  • Rinomina l'opzione --nosigalrm di --method = filo di sostegno a prova di futuro per eventlet e gevent. Grazie a Ronny Pfannschmidt per il suggerimento.
  • Aggiungi timeout e timeout_method elementi al file di configurazione in modo da poter attivare e configurare il plugin utilizzando il file ini. Grazie a Holger Krekel e Ronny Pfannschmidt per i suggerimenti.
  • Testato (e fissi) per Python 2.6, 2.7 e 3.2.

Requisiti :

  • Python
  • py.test

Programmi simili

LAVA Server
LAVA Server

20 Feb 15

RESTClient
RESTClient

28 Sep 15

sst
sst

14 Apr 15

robotframework
robotframework

17 Feb 15

Commenti a pytest-timeout

I commenti non trovato
Aggiungi commento
Accendere le immagini!