Heim  >  Artikel  >  Datenbank  >  Wie behebe ich „RuntimeError: Arbeiten außerhalb des Anwendungskontexts“ beim Unit-Testen?

Wie behebe ich „RuntimeError: Arbeiten außerhalb des Anwendungskontexts“ beim Unit-Testen?

DDD
DDDOriginal
2024-11-16 16:47:03518Durchsuche

How to Resolve

RuntimeError: Arbeiten außerhalb des Anwendungskontexts

Beim Versuch, die Funktionen before_request und input_info aus dem app.py-Modul im Test zu testen. py ist ein RuntimeError aufgetreten, der darauf hinweist, dass die Funktionen außerhalb des Anwendungskontexts aufgerufen werden.

Um dieses Problem zu beheben, muss der Kontextmanager app.app_context() verwendet werden, um einen Testanwendungskontext innerhalb des zu erstellen Unit-Tests. Dieser Kontextmanager bietet die notwendige Umgebung für die korrekte Ausführung der Funktionen before_request und input_info.

Hier ist ein Beispiel für die Verwendung des Kontextmanagers app.app_context() im Komponententest:

from app import *
class Test(unittest.TestCase):         
    def test_connection1(self):  
        with app.app_context():
            object = TestMySQL()
            object.before_request()  # Should no longer throw a RuntimeError

In diesem Test umschließt der Kontextmanager app.app_context() den Aufruf der Funktion before_request, erstellt den erforderlichen Testanwendungskontext und löst den RuntimeError.

Das obige ist der detaillierte Inhalt vonWie behebe ich „RuntimeError: Arbeiten außerhalb des Anwendungskontexts“ beim Unit-Testen?. 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