У меня проблема с запуском pytest в ситуации, когда мое приложение вызывает другой скрипт в той же директории. Вот моя структура каталогов:
├── my_project/
│ ├── application/
│ | ├──__init__.py
│ | ├──app.py
│ | ├──utils.py
│ ├── application_test/
│ | ├── __init__.py
│ │ ├── unit_test.py
Код в app.py
имеет выражение: from utils import func1, func2, func3
, и это прекрасно работает, когда я запускаю $ python app.py
. Однако, когда я запускаю $ py.test
с уровня каталога my_project
, я получаю сообщение об ошибке «ModuleNotFoundError: Нет модуля с именем« utils »». Ошибки появляются из этой строки в unit_test.py
:
import application.app
Поскольку эта строка вызывает app.py
, который затем пытается импортировать из utils.py
, и каким-то образом app.py
не видит файл utils.py
, даже если он находится в том же каталоге.
Я пытался использовать $ python -m pytest application_test
, а также иметь __init__.py
в корне и без, но ни один из этих или других ответов на stackoverflow, похоже, не работает.