Как сделать мои модульные тесты 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
.