Я использую 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()
.
app
в верхней части модуля. Когда вы это сделаете, все внутриproject/__init__.py
запустится. - person dirn   schedule 08.02.2016Manager
требует этого, поэтому я не понимаю, как это обойти. - person hammygoonan   schedule 08.02.2016