Maison >base de données >tutoriel mysql >Comment corriger « RuntimeError : travail en dehors du contexte de l'application » dans les tests Flask ?

Comment corriger « RuntimeError : travail en dehors du contexte de l'application » dans les tests Flask ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-13 15:34:02804parcourir

How Do I Fix

RuntimeError : Operating Outside Application Context

Dans Flask, chaque requête génère un contexte d'application qui sert de contexte pour diverses opérations. Lors du test des applications Flask, il est courant de rencontrer une erreur « RuntimeError : travailler en dehors du contexte de l'application ». Cela se produit lorsqu'une opération est tentée en dehors de ce contexte défini.

Pour résoudre ce problème, vous devez créer explicitement le contexte de requête dans vos tests unitaires. En incorporant app.app_context() dans votre test, vous établissez le contexte nécessaire pour exécuter des opérations telles que les connexions à une base de données ou le rendu de modèles :

def test_connection1(self):
with app.app_context():
object = TestMySQL()
object.before_request()

En encapsulant le code de test dans le contexte de l'application, vous vous assurez que les opérations sont effectué dans le contexte correct et éviter l’erreur d’exécution. De plus, vous pouvez utiliser app.test_client() pour créer des clients de test qui intègrent le contexte de l'application et émulent les effets d'une requête typique sans avoir besoin d'une requête HTTP réelle.

client = app.test_client()
response = client.get('/')
assert response.status_code == 200

En résumé, à éviter l'erreur « RuntimeError : travailler en dehors du contexte de l'application » et testez avec succès les applications Flask, utilisez app.app_context() ou app.test_client() pour établir le contexte requis pour les opérations spécifiques à la requête.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn