Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich in meinen Flask-Unit-Tests die Meldung „RuntimeError: Arbeiten außerhalb des Anwendungskontexts'?
RuntimeError: Arbeiten außerhalb des Anwendungskontexts
In der angegebenen Flask-Anwendung ein Versuch, die before_request-Funktion in einem Komponententest aufzurufen (test .py) führt zu einem „RuntimeError: Arbeit außerhalb des Anwendungskontexts.“ Der gleiche Fehler tritt beim Aufruf der Funktion „input_info“ auf.
Hintergrund:
Flask verwaltet einen globalen Anwendungskontext, der Zugriff auf Dienste wie die Datenbankverbindung ermöglicht. Um im Kontext zu funktionieren, muss Code innerhalb des Anfrage-Antwort-Zyklus der Anwendung ausgeführt werden.
Lösung:
Um den Fehler zu beheben, müssen die Komponententests eine erstellen Anwendungskontext. Dies kann mit app.app_context() als Kontextmanager erreicht werden:
def test_connection(self): with app.app_context(): # Test code here using `g.db`
Alternative Lösung:
Anstatt den Anwendungskontext manuell zu verwalten, können Sie ihn verwenden die Flask-Testing-Erweiterung, die automatisch den Kontext für Unit-Tests einrichtet.
Zusätzlich Überlegungen:
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinen Flask-Unit-Tests die Meldung „RuntimeError: Arbeiten außerhalb des Anwendungskontexts'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!