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()
関数に設定された後にのみ初期化する必要があります。