Flask テストの「RuntimeError: Working Outside of Application Context」を修正するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-13 15:34:02
オリジナル
702 人が閲覧しました

How Do I Fix

RuntimeError: Operating Outside Application Context

Flask では、各リクエストはさまざまな操作のコンテキストとして機能するアプリケーション コンテキストを生成します。 Flask アプリケーションをテストする場合、「RuntimeError: アプリケーション コンテキスト外で動作しています」エラーが発生するのが一般的です。これは、この定義されたコンテキストの外で操作が試行されたときに発生します。

この問題に対処するには、単体テスト内でリクエスト コンテキストを明示的に作成する必要があります。 app.app_context() をテストに組み込むことで、データベース接続やテンプレートのレンダリングなどの操作を実行するために必要なコンテキストを確立します。

def test_connection1(self):
with app.app_context():
object = TestMySQL()
object.before_request()
ログイン後にコピー

アプリ コンテキスト内でテスト コードをラップすることで、操作が確実に実行されます。正しいコンテキスト内で実行され、ランタイム エラーが回避されます。さらに、app.test_client() を利用して、アプリケーション コンテキストを埋め込み、実際の HTTP リクエストを必要とせずに一般的なリクエストの効果をエミュレートするテスト クライアントを作成できます。

client = app.test_client()
response = client.get('/')
assert response.status_code == 200
ログイン後にコピー

要約すると、 「RuntimeError: アプリケーション コンテキスト外で動作しています」エラーを解決して Flask アプリケーションを正常にテストするには、app.app_context() または app.test_client() を使用して、リクエスト固有の操作に必要なコンテキストを確立します。

以上がFlask テストの「RuntimeError: Working Outside of Application Context」を修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート