Flask-Scriptアプリケーションでテストを実行するために使用していますが、manage.pyファイルの重要な部分は次のようになります。
import unittest
from flask.ext.script import Manager
from project import app
manager = Manager(app)
@manager.command
def test():
"""Run unit tests."""
app.config.from_object('config.Test')
tests = unittest.TestLoader().discover('tests', pattern='*.py')
unittest.TextTestRunner(verbosity=1).run(tests)
しかし、実行python manage.py testすると、アプリケーション全体を初期化しようとするため、たとえば、環境変数を設定していない場合KeyError、プロジェクトの__init__.pyファイルから次のようにスローされます。
File "project/__init__.py", line 19, in <module>
app.config.from_object(os.environ['PROJECT_SETTINGS'])
または、環境変数を設定した場合、データベース テーブルが見つからないというエラーが発生します。
確かに、アプリは、テストが実行され、構成変数がtest()関数に設定された後にのみ初期化する必要があります。