У меня есть пакет python, для которого я пытаюсь написать модульные тесты. Пакет выглядит следующим образом:
helper/
utils/
app/
requirements.txt
README.md
tests/
Я пришел из java фона, поэтому я подумал об организации тестов в том же пакет как исходный, поэтому мой каталог тестов выглядит следующим образом
tests/
helper/
helper_a_test.py
utils/
util_a_test.py
app/
myapp_test.py
, когда я пытаюсь вызвать тесты, как показано ниже
python -m unittest discover
Тест не проходит из-за ошибки импорта из источника с ошибкой модуль app, helper, utils не найдены. У меня есть __ init __. Py файл - это все мои пакеты. Я переместил все тесты внутри подкаталога tests в каталог tests root, как показано ниже.
tests/
helper_a_test.py
util_a_test.py
myapp_test.py
Теперь все тесты работают должным образом. Может ли кто-нибудь объяснить, почему это происходит, а также является ли хорошей практикой хранить все тесты в одном каталоге, а не в отдельном пакете?