Как сделать мои модульные тесты Python для импорта тестируемых модулей, если они находятся в папках сестра?
Я все еще склоняюсь к инструкции import. Если у меня есть 2 папки на одном уровне:
ЦСИ
тест
Как сделать файлы py в test импортировать модули в src?
Есть ли лучшее решение (например, положить папку внутри другого?)
Ответ 1
Код, который вы хотите, предназначен для использования src/module_name.py
from src import module_name
и корневой каталог находится на вашем PYTHONPATH, например. вы запускаете из корневого каталога
Структура вашего каталога - это то, что я использую, но вместо имени модели вместо src. Я получил эту структуру из J Calderone blog и похож на Блог Google
Ответ 2
Попробуйте следующее:
import sys
import os
sys.path.append(os.path.join('..', 'src'))
import module_in_src_folder
отредактирован для поддержки любой платформы
Ответ 3
У меня точно такая же ситуация, как и у OP со всеми проектами python, которые я пишу:
Папка проекта
ЦСИ
тест
Все модули, как в src, так и в test, или вложенные папки из них всегда используют форму import, которую Марк показывает в своем ответе:
from src import module_name
Что я сделал, это написать модуль, который находится в Project Folder и рекурсивно обнаруживает все тестовые модули в тестовой папке и получает unittest для запуска всех этих тестов. Поскольку python работает в Project Folder, тогда модули относятся к рабочему каталогу.
Это означает, что тесты такие же, как и любой другой клиент, который хочет модули из src.