Problemstellung:
Beim Versuch, Unit-Tests für eine Flask-Anwendung durchzuführen, rufen Sie „before_request ' Funktion von außerhalb des Anwendungskontexts löst eine aus RuntimeError:
with patch('__main__.mysql.connector.connect') as mock_mysql_connector_connect: object = TestMySQL() object.before_request() # Runtime error on calling this
Ursache:
Flask verwendet einen Anwendungskontext, um anforderungsspezifische Daten zu verwalten. Beim Aufrufen von Funktionen außerhalb dieses Kontexts, wie im Unit-Test, sind die notwendigen Ressourcen nicht verfügbar, was zu dem oben genannten Fehler führt.
Lösung:
Um dieses Problem zu beheben, muss die Der Unit-Test muss im Anwendungskontext ausgeführt werden. Dies kann mit dem Dekorator „app_context()“ erreicht werden:
def test_connection(self): with app.app_context(): # Test code here
Alternativ kann der Aufruf „app_context()“ in eine Test-Setup-Methode gekapselt werden.
Das obige ist der detaillierte Inhalt vonSo beheben Sie RuntimeError: Arbeiten außerhalb des Anwendungskontexts in Flask-Unit-Tests?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!