Ошибка импорта Pytest несмотря на использование conftest в каталоге root? - PullRequest
4 голосов
/ 15 января 2020

У меня следующая структура каталогов:

src 
    \conftest.py
    \dir_A
        \run_A.py
        \test_run_A.py
    \dir_B
        \run_B.py

, где run_A.py имеет следующий код:

from dir_B import run_B

...

Когда я запускаю pytest из src, я получаю ошибка:

ImportError while importing test module '/home/user/src/dir_A/run_A.py'
...

ImportError: cannot import name 'run_B'

Существует ли причина, по которой это не удается, несмотря на использование conftest.py?

Я хотел бы добавить, что запуск python3 -m dir_A.test_run_A из src прекрасно работает как тест.

1 Ответ

0 голосов
/ 22 января 2020

Эта ссылка будет вам полезна: https://docs.pytest.org/en/latest/pythonpath.html

По существу, при запуске этих тестов из каталога src, pytest будет проходить до /home/user/src/dir_A/run_A.py. Без каких-либо файлов __init__.py он откажет ходить куда-либо еще, поскольку не осознает, что является частью более крупного пакета.

...