Heim  >  Artikel  >  Datenbank  >  So beheben Sie RuntimeError: Arbeiten außerhalb des Anwendungskontexts in Flask-Unit-Tests?

So beheben Sie RuntimeError: Arbeiten außerhalb des Anwendungskontexts in Flask-Unit-Tests?

DDD
DDDOriginal
2024-11-12 09:16:02544Durchsuche

How to Resolve RuntimeError: Working Outside of Application Context in Flask Unit Tests?

RuntimeError: Außerhalb des Anwendungskontexts arbeiten

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn