問題ステートメント:
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 サイトの他の関連記事を参照してください。