ホームページ  >  記事  >  データベース  >  Flask 単体テストで「RuntimeError: Working Outside of Application Context」が発生するのはなぜですか?

Flask 単体テストで「RuntimeError: Working Outside of Application Context」が発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-11 22:04:02926ブラウズ

Why Am I Getting a

RuntimeError: Working Outside of Application Context

指定された Flask アプリケーションで、単体テスト (テスト) で before_request 関数を呼び出そうとしました。 .py) を実行すると、「RuntimeError: アプリケーション コンテキスト外で動作しています。」というエラーが発生します。 input_info 関数を呼び出すときにも同じエラーが発生します。

Background:

Flask は、データベース接続などのサービスへのアクセスを提供するグローバル アプリケーション コンテキストを管理します。コンテキスト内で動作するには、アプリケーションのリクエストとレスポンスのサイクル内でコードを実行する必要があります。

解決策:

エラーを解決するには、単体テストでアプリケーションコンテキスト。これは、コンテキスト マネージャーとして app.app_context() を使用して実現できます:

def test_connection(self):
    with app.app_context():
        # Test code here using `g.db`

代替解決策:

アプリケーション コンテキストを手動で管理する代わりに、次のように使用できます。 Flask-Testing 拡張機能。単体テストのコンテキストを自動的に設定します。

追加考慮事項:

  • 使用後はデータベース接続が閉じられていることを確認してください。
  • テストを実行する前に、フィクスチャまたはセットアップ メソッドを使用してデータベースを初期化します。
  • 単体テストのために Flask の CSRF 保護を無効にします。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。