Я создаю сайт с рамкой для бутылок.Я использую тесты носа для моего юнит-тестирования.Однако есть проблема, которую я не могу решить самостоятельно.
Кажется, я не могу найти способ, позволяющий мне запускать тесты, не ломая мой сервер.Когда я запускаю свои тесты, мне нужно сделать относительный импорт, чтобы они работали, но они не работают, когда я запускаю сервер.
Это моя структура папок:
├── service
│ ├── __init__.py
│ ├── application.py
│ ├── main.py
│ ├── response_header.py
│ ├── global_data_loader.py
│ ├── renderer
│ │ ├── __init__.py
│ │ ├── header.py
│ │ ├── ....
│ ├── tests
│ │ ├── test_application.py
│ │ ├── ....
Вот как я импортирую, чтобы мой сервер работал:
application.py --
from response_header import ResponseHeader
from global_data_loader import GlobalDataLoader
from renderer import Application
Однако, когда я запускаю тесты на нос, я получаю это сообщение: ModuleNotFoundError: No module named 'response_header'
Поэтому, когда я хочу, чтобы тесты на нос работали, я имеючтобы изменить импорт так, чтобы он выглядел следующим образом:
application.py --
from .response_header import ResponseHeader
from .global_data_loader import GlobalDataLoader
from .renderer import Application
Тогда мои тесты носа работают, но когда я хочу запустить свой сервер, я получаю это сообщение:
from .response_header import ResponseHeader
ImportError: attempted relative import with no known parent package
Я пытался использовать sys.path.append в моих тестах, и это работает, но мне нужно решение, которое не включает PYTHONPATH или использование os / sys
edit: я исправил это, переместив свой main.py, который я использую для запускасервер в корневую папку, над моим сервисом и тестовым модулем.теперь работает нормально