У меня структура проекта Python выглядит следующим образом:
.
├── data
├── src
│ ├── module1
│ └── module2
└── tests
├── base
├── module1
└── module2
В каталог data
я помещаю фиктивные данные для использования в модульном тесте (например, файлы CSV). Если я нахожусь внутри PyCharm, внутри модульного теста, я могу использовать относительный путь, как показано ниже, и использовать среду IDE для успешного выполнения модульного теста (используя unittests
).
pd.read_csv('../../data/mock.csv')
Однако за пределами PyCharm , Я могу попробовать выполнить следующую команду для запуска модульного теста.
python -m unittest tests/module1/*.py
Я получаю сообщение об ошибке, в котором говорится, что файл не существует. Если я изменю путь следующим образом, то запуск модульного теста из-за пределов PyCharm будет работать, но запуск теста в PyCharm завершится неудачно.
pd.read_csv('./data/mock.csv')
Когда я проверяю конфигурацию модульного теста, я замечаю, что working directory
установлено /Users/myusername/myproject/tests/module1
. Если я изменю рабочий каталог на /Users/myusername/myproject
, я получаю следующую ошибку: AssertionError: Path must be within the project
.
Я даже пытался переместить каталог data
в tests > module1
, но конфликт остался; теперь pd.read_csv('./data/mock.csv')
работает для PyCharm, но не работает для терминала.
Есть идеи, как разрешить этот конфликт?