Vollständige Pytest-Dokumentation¶
Neueste Version als PDF herunterladen
Starten Sie hier¶
- Erste Schritte
- Installieren Sie
pytest - Erstellen Sie Ihren ersten Test
- Führen Sie mehrere Tests aus
- Stellen Sie sicher, dass eine bestimmte Ausnahme ausgelöst wird
- Gruppieren Sie mehrere Tests in einer Klasse
- Vergleichen Sie Fließkommawerte mit pytest.approx
- Fordern Sie ein eindeutiges temporäres Verzeichnis für Funktionstests an
- Weiterlesen
- Installieren Sie
Anleitungen¶
- Wie man pytest aufruft
- Wie man Assertions in Tests schreibt und meldet
- Assertions mit der
assert-Anweisung - Assertions über ungefähre Gleichheit
- Assertions über erwartete Ausnahmen
- Assertions über erwartete Warnungen
- Nutzung kontextsensitiver Vergleiche
- Definieren Sie Ihre eigene Erklärung für fehlgeschlagene Assertions
- Rückgabe eines Nicht-None-Werts in Testfunktionen
- Details zur Assertions-Introspektion
- Assertions mit der
- Wie man Fixtures verwendet
- Fixtures „anfordern“
- Autouse-Fixtures (Fixtures, die Sie nicht anfordern müssen)
- Scope: Freigabe von Fixtures über Klassen, Module, Pakete oder Sitzungen hinweg
- Teardown/Bereinigung (AKA Fixture-Finalisierung)
- Sichere Teardowns
- Mehrere
assert-Anweisungen sicher ausführen - Fixtures können den anfordernden Testkontext introspektieren
- Verwendung von Markern zum Übergeben von Daten an Fixtures
- Fabriken als Fixtures
- Parametrisierung von Fixtures
- Verwendung von Marks mit parametrisierten Fixtures
- Modularität: Verwendung von Fixtures aus einer Fixture-Funktion
- Automatische Gruppierung von Tests nach Fixture-Instanzen
- Verwendung von Fixtures in Klassen und Modulen mit
usefixtures - Überschreiben von Fixtures auf verschiedenen Ebenen
- Verwendung von Fixtures aus anderen Projekten
- Wie man Testfunktionen mit Attributen markiert
- Wie man Fixtures und Testfunktionen parametrisiert
- Wie man temporäre Verzeichnisse und Dateien in Tests verwendet
- Wie man Module und Umgebungen monkeypatcht/mockt
- Wie man Doctests ausführt
- Wie man fehlgeschlagene Tests erneut ausführt und den Zustand zwischen Testläufen beibehält
- Wie man Logging verwaltet
- Wie man stdout/stderr-Ausgabe abfängt
- Wie man Warnungen abfängt
- Warnungen steuern
@pytest.mark.filterwarnings- Zusammenfassung der Warnungen deaktivieren
- Warnungserfassung vollständig deaktivieren
- DeprecationWarning und PendingDeprecationWarning
- Sicherstellen, dass Code eine Deprecation-Warnung auslöst
- Warnungen mit der warnt-Funktion überprufen
- Warnungen aufzeichnen
- Zusätzliche Anwendungsfälle für Warnungen in Tests
- Benutzerdefinierte Fehlermeldungen
- Interne Pytest-Warnungen
- Ressourcenwarnungen
- Wie man skip und xfail verwendet, um mit Tests umzugehen, die nicht erfolgreich sein können
- Wie man Plugins installiert und verwendet
- Plugins schreiben
- Reihenfolge der Plugin-Erkennung beim Start des Tools
- conftest.py: lokale Plugins pro Verzeichnis
- Eigenes Plugin schreiben
- Ihr Plugin für andere installierbar machen
- Assertions-Rewriting
- Plugins in einem Testmodul oder einer conftest-Datei anfordern/laden
- Auf ein anderes Plugin nach Namen zugreifen
- Benutzerdefinierte Marker registrieren
- Plugins testen
- Hook-Funktionen schreiben
- Hook-Funktionsvalidierung und -ausführung
- firstresult: Stoppen beim ersten Nicht-None-Ergebnis
- Hook-Wrapper: Ausführung um andere Hooks herum
- Reihenfolge der Hook-Funktionen / Aufrufbeispiel
- Neue Hooks deklarieren
- Hooks in pytest_addoption verwenden
- Optional Hooks von Drittanbieter-Plugins verwenden
- Daten über Hook-Funktionen hinweg auf Items speichern
- Wie man pytest mit einer bestehenden Testsuite verwendet
- Wie man
unittest-basierte Tests mit pytest verwendet - Wie man xunit-Style-Setup implementiert
- Wie man Bash-Vervollständigung einrichtet
Referenzanleitungen¶
Erklärung¶
Weitere Themen¶
- Beispiele und Anpassungstricks
- Demo von Python-Fehlerberichten mit pytest
- Grundlegende Muster und Beispiele
- Tests parametrisieren
- Arbeiten mit benutzerdefinierten Markern
- Eine Session-Fixture, die alle gesammelten Tests betrachten kann
- Ändern der Standard-Testfindung (Python)
- Arbeiten mit Nicht-Python-Tests
- Verwendung eines benutzerdefinierten Verzeichnissammlers
- Abwärtskompatibilitätsrichtlinie
- Geschichte
- Python-Versionsunterstützung
- Deprecations und Entfernung
- Mitwirken
- Feature-Anfragen und Feedback
- Fehler melden
- Fehler beheben
- Funktionen implementieren
- Dokumentation schreiben
- Einreichung von Plugins an pytest-dev
- Vorbereitung von Pull Requests
- Dem Entwicklungsteam beitreten
- Richtlinien für Merge/Squash
- Backporting von Fehlerkorrekturen für die nächste Patch-Version
- Umgang mit veralteten Issues/PRs
- Issues schließen
- Entwicklerhandbuch
- Sponsor
- pytest für Unternehmen
- Lizenz
- Kontaktkanäle
- Geschichte
- Historische Anmerkungen
- Marker-Überarbeitung und Iteration
- Cache-Plugin in den Kern integriert
- funcargs und
pytest_funcarg__ @pytest.yield_fixtureDekorator- [pytest]-Header in
setup.cfg - Anwenden von Marks auf Parameter von
@pytest.mark.parametrize - Argumentnamen von
@pytest.mark.parametrizeals Tupel - setup: ist jetzt ein „Autouse-Fixture“
- Bedingungen als Strings statt als Booleans
pytest.set_trace()- „compat“-Eigenschaften
- Vorträge und Tutorials