Pytest не видит файлы для импорта

День добрый. Имеется структура проекта:

.main.py
    -src/json_wrapper.py
    -tests/test_json_wrapper.py

В test_json_wrapper добавлена конструкция

import sys
sys.path.append("../")

Дабы он смог импортировать враппер при запуске.

Проблема: при запуске pytest-a из директории tests - всё проходит успешно, но при запуске из корневой директории - он видит тесты, но не может импортировать в них файл json_wrapper

tests\test_json_wrapper.py:5: in <module>
    from src.json_wrapper import JsonWrapper
E   ModuleNotFoundError: No module named 'src'

Как сделать возможность корректного запуска pytest из любой папки?


Ответы (2 шт):

Автор решения: svmitin

Попробуйте в папках src и tests создать файлы с именами __init__.py. Это должно сказать pytest, что их родительский каталог это директория с проектом.

Далее для запуска тестов из родительского каталога используйте:

pytest tests

Из папки с тестами:

pytest
→ Ссылка
Автор решения: Sergei Rudik

__init__.py нужен в папках, чтобы можно было ее инициализировать как пакет, соответственно добавлять необходимые модули. По этому надо создать их, просто пустыми.

→ Ссылка