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 サイトの他の関連記事を参照してください。