Я использую Flask-Script
для выполнения тестов на моем приложении важный бит моего manage.py
файла выглядит следующим образом:нагрузки Колба-Script приложения перед запуском UnitTests
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()
.
Вы импортируете 'приложение' в верхней части модуля. Что-то внутри 'project/__ init __. Py' будет запускаться, когда вы это сделаете. – dirn
Спасибо @dim. Проблема заключается в том, что «Менеджер» требует этого, поэтому я не вижу, как я могу обойти это. – hammygoonan