RuntimeError を解決する方法: Flask 単体テストのアプリケーション コンテキスト外での作業?

DDD
リリース: 2024-11-12 09:16:02
オリジナル
561 人が閲覧しました

How to Resolve RuntimeError: Working Outside of Application Context in Flask Unit Tests?

RuntimeError: アプリケーション コンテキスト外での作業

問題ステートメント:
Flask アプリケーションで単体テストを試みるとき、「before_request」を呼び出します' アプリケーション コンテキストの外部からの関数により RuntimeError が発生します:

with patch('__main__.mysql.connector.connect') as mock_mysql_connector_connect:
  object = TestMySQL()
  object.before_request()  # Runtime error on calling this
ログイン後にコピー

根本原因:
Flask はアプリケーション コンテキストを使用してリクエスト固有のデータを管理します。単体テストなど、このコンテキスト外で関数を呼び出すと、必要なリソースが利用できず、前述のエラーが発生します。

解決策:
この問題を解決するには、単体テストはアプリケーション コンテキスト内で実行する必要があります。これは、'app_context()' デコレータを使用して実現できます:

def test_connection(self):
    with app.app_context():
        # Test code here
ログイン後にコピー

あるいは、'app_context()' 呼び出しをテスト セットアップ メソッド内にカプセル化することもできます。

以上がRuntimeError を解決する方法: Flask 単体テストのアプリケーション コンテキスト外での作業?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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