2016-05-11 2 views
1

Я читаю «Дизайн фляжек», опубликованный o'reilly. В 7-й главе, автор показывает, что основная структура, как:Как запустить unittest в проекте с флягой?

|-app/ 
|-tests/ 
    |-__init__.py 
    |-test_basics.py 
|-manage.py 
|-config.py 

И test_basics.py показывает, что

from app import create_app 

Интересно, как это работает, чтобы импортировать приложение, когда test_basics не в то же самое как пакет приложений?

И каков способ вызова test_basics? С помощью «python test_basics.py» или с помощью «теста python manage.py» и передайте приложение в качестве параметра test_basics?

+0

http://pytest.org/latest/goodpractices.html#goodpractices – davidism

+0

Если вы используете python test_basics.py, «из приложения import create_app» не будет работать, поскольку test_basics.py не находится на одном уровне с приложением. Если test вызывается командой manage.py, invoker находится на том же уровне с приложением. –

ответ

0

Для примера проекта книги, вы можете запустить юнит-тесты из корневой директории проекта с помощью следующей команды:

python manage.py test 

from app import create_app оператор работает, потому что импорт не относительны, они оцениваются от Текущий каталог. Если вы хотите использовать относительный импорт, вы должны добавить точку перед именем модуля.

Смежные вопросы