Я пытаюсь использовать pytest для автоматизации моего процесса тестирования.У меня есть несколько файлов тестовых случаев (test_methodA.py
, test_methodB.py
и т. Д.) В папке с именем test
, которая сама находится в каталоге верхнего уровня моего проекта.Все эти тесты выполняются в программе, содержащейся в одном файле - program.py
.Этот program.py
файл также находится в каталоге верхнего уровня, так же как и папка с файлами конфигурации confs
, которая необходима для правильной работы.
Когда я запускаю pytest из каталога верхнего уровня сАргумент одного из моих тестовых файлов:
$ pytest test/test_methodA.py
Программа работает правильно и проходит тесты.Однако, если я просто запускаю pytest без аргументов:
$ pytest
все мои тесты не пройдены, потому что методы инициализации моей программы выдают FileNotFoundError
при попытке доступа к файлам конфигурации.
Я имеюпоэкспериментировал с этим поведением и определил, что прямой причиной является pytest, использующий неправильный рабочий каталог (каталог на один уровень выше каталога верхнего уровня проекта).Например, если я сделаю
$ cd test
$ pytest
, все тесты будут работать правильно.Я также подтвердил это, напечатав один из тестов os.getcwd()
на консоли.
Ни один из каталогов, участвующих в проекте, не содержит файл __init__.py
, на котором сосредоточено большинство результатов поиска, которые я нашел для этой проблемы.Какие еще причины были бы для этой проблемы?