Использование локального импорта в Pytest - PullRequest
0 голосов
/ 18 ноября 2018

Я никогда не до конца понимал, как обрабатываются пакеты в Python, и у меня сейчас проблема с этим.Но поиск в Google, похоже, не помогает, поскольку я нахожу тему действительно запутанной.

У меня есть проект с такой структурой:

project_name/
    src/
        main.py
        utils/
            string_utils.py
    tests/
        test_string_utils.py

Я использую Pytest для запуска модульного тестирования и в настоящее время внутрифайл "test_string_utils.py" У меня есть следующее:

from ..src.utils.string_utils import StringUtilsClass

Но я иду в папку "имя_проекта" и пытаюсь запустить тесты с любой из этой команды, я получаю ошибки:

$ pytest tests/

ValueError: попытка относительного импорта за пределы пакета верхнего уровня

Я знаю об аргументе -m для python, но похоже, что запуск "pytest -m" ведет себя совершенно по-другому.

Как я могу решить это?Я использую неправильную архитектуру папок?Я не думаю, что то, что я создаю, должно быть пакетом в пипсах (что упростит импорт)

1 Ответ

0 голосов
/ 18 ноября 2018

вы пробовали: from src.utils.string_utils import StringUtilsClass без .. до src?или from string_utils import StringUtilsClass

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...