Im bereitgestellten Code ist beim Zugriff auf Datenbankmethoden eine Ausnahme aufgetreten aus der Unit-Test-Datei. Insbesondere wird der Fehler „RuntimeError: Arbeiten außerhalb des Anwendungskontexts“ ausgelöst, wenn die Funktion „before_request“ und die Route „input_info“ aus der Datei test.py aufgerufen werden.
Um dieses Problem zu beheben und Datenbankinteraktionen innerhalb zu ermöglichen Bei den Unit-Tests muss sichergestellt werden, dass der Flask-Anwendungskontext korrekt eingerichtet ist. Der Flask-Anwendungskontext verwaltet den anforderungsspezifischen Status, einschließlich Datenbankverbindungen. Wenn Sie Tests außerhalb des Kontexts einer Anfrage ausführen, ist es erforderlich, den Anwendungskontext manuell einzurichten.
Hier ist eine modifizierte Version Ihres Testcodes in test.py, die die notwendigen Änderungen enthält:
from app import app from app import TestMySQL class Test(unittest.TestCase): def test_connection(self): with app.app_context(): object = TestMySQL() object.before_request() cursor = g.db.cursor() cursor.execute ('CREATE TABLE IF NOT EXISTS testmysql (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(40) NOT NULL, \ email VARCHAR(40) NOT NULL UNIQUE)') cursor.close()
Indem wir den Testcode in den app.app_context()-Aufruf einschließen, stellen wir den Anwendungskontext her und stellen sicher, dass die erforderlichen Datenbankverbindungsobjekte verfügbar sind. Dadurch wird die Ausnahme „RuntimeError: Arbeiten außerhalb des Anwendungskontexts“ behoben und ermöglicht den erfolgreichen Zugriff auf die Datenbankmethoden während der Komponententests.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Testen meiner Flask-App die Fehlermeldung „RuntimeError: Arbeiten außerhalb des Anwendungskontexts'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!