Я менял структуру каталогов и добавлял случайные init .py и все такое в течение примерно двух часов, и я не могу понять, как заставить Pytest запустить тест, которыйимпортирует файл на один уровень выше.
Сейчас моя структура каталогов:
├── conftest.py
├── junk
│ ├── __init__.py
│ └── ook.py
└── tests
├── test_ook.py
, а содержимое ook.py:
def ook():
pass
и содержимое test_ook.py:
from ook import ook
def test_horse():
pass
Результат выполнения pytest
и python -m pytest
:
ImportError while importing test module '/home/z9/repos/test/tests/test_ook.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/test_ook.py:1: in <module>
from ook import ook
E ModuleNotFoundError: No module named 'ook'
Этот код скопирован из этого поста: Обеспечение того, чтобы py.test включал каталог приложения в sys.path
Другие люди говорят, что это работает для них - это работает для меня в python, например, когда я пишу скрипт для from ook import ook
, который работаетхорошо, но в pytest он просто не может понять это.
Python 3.7, pytest 5.2.2
Хорошо, поэтому для обновления реальная проблема в том, что ook.py нужно импортировать что-то,Он работает только с абсолютным импортом -> поведение при запуске «python -m pytest» отличается от «python»