ホームページ >データベース >mysql チュートリアル >RuntimeError を解決する方法: Flask 単体テストのアプリケーション コンテキスト外での作業?

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

DDD
DDDオリジナル
2024-11-12 09:16:02630ブラウズ

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

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