pytest-timeout

Screenshot der Software:
pytest-timeout
Softwarebeschreibung:
Version: 0.3
Upload-Datum: 20 Feb 15
Entwickler: Floris Bruynooghe
Lizenz: Frei
Popularität: 136

Rating: 5.0/5 (Total Votes: 1)

pytest-Timeout ist ein Plugin für py.test die Tests nach einer gewissen Timeout beendet wird. & Nbsp; Dabei werden Sie eine Stapelabbild aller Threads an der Zeit zu bekommen. Dies ist sinnvoll, wenn z Ausführen von Tests im Rahmen eines fortlaufende Integration (CI) Server.
Verwendung
Installieren Sie über:
pip pytest-timeout installieren
und aktivieren Sie das Plugin entweder über die Befehlszeile:
py.test -p Timeout
oder komfortabel aus dem Testmodul oder conftest.py:
pytest_plugins = 'timeout'
Sie können das Zeitlimit zu ändern mit dem --timeout Parameter, der die Zeit in Sekunden fest.
Wie es funktioniert
Dieses Plugin arbeitet in einer von zwei Möglichkeiten. Wenn das System unterstützt die SIGALRM Signal ein Alarm eingeplant werden beim Start der Tests und aufgehoben, wenn es fertig ist. Wenn der Alarm erlischt während des Tests das Signal Handler pytest.fail () verwenden, um den Test, nachdem er warf die Stapel von anderen Threads auf stderr zu unterbrechen.
Wenn das System nicht unterstützt SIGALRM oder --nosigalrm-Option wurde dann ein Zeitgeber-Thread wird stattdessen verwendet. Noch einmal, wenn dieser Timer nicht abgebrochen wird, bevor es abläuft wird der Stapel aller Themen werfen, bevor er vom gesamten py.test Prozess mit os._exit stderr (1).
Die Kehrseite des SIGALRM Methode ist, dass das Signal durch das Test-Framework verwendet. Wird dieses Signal durch den Code unter Test verwendet, müssen Sie die --nosigalrm Option verwenden. Die Begrenzung der Timer-Thread aber ist der zusätzliche Aufwand für die Erstellung eines Threads für jede ausgeführte Test und der Tatsache, dass nach einem Timeout der gesamte Prozess angehalten und keine weiteren Tests ausgeführt werden.

Was ist neue in dieser Pressemitteilung:.

  • Hinzugefügt PYTEST_TIMEOUT die Umgebungsvariable als eine Möglichkeit der Angabe des Timeout (schließt Ausgabe # 2)
  • Flexiblere Marker Argument-Analyse:. Sie können nun die Methode unter Verwendung eines Positions Argument
  • Das Plugin ist nun standardmäßig aktiviert. Es besteht keine Notwendigkeit mehr, timeout = 0 in der Konfigurationsdatei oder auf der Kommandozeile einfach, so dass ein Marker funktionieren würde angeben.

Was ist neu in Version 0.2:

  • Fügen Sie eine Markierung auf eine Änderung der Timeout-Zeit mit einempytest .timeout (N) Syntax dank Laurant Brack für den ursprünglichen Code.
  • Lassen Sie die Timeout-Marker, um die Timeout-Methode mit der Methode Schlüsselwort-Argument auswählen.
  • Benennen Sie die --nosigalrm Option für eventlet und gevent --method = Thread, um zukunftssichere Unterstützung. Dank Ronny Pfannschmidt für den Hinweis.
  • Fügen Timeout und timeout_method Einträge in die Konfigurationsdatei, so können Sie aktivieren und konfigurieren Sie das Plugin mit dem INI-Datei. Dank Holger Krekel und Ronny Pfannschmidt für die Hinweise.
  • Getestet (und fest) für Python 2.6, 2.7 und 3.2.

Anforderungen :

  • Python
  • py.test

Ähnliche Software

Kommentare zu pytest-timeout

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!