vscode-python запускает pytest в неправильном каталоге, так что относительные пути путаются
С pytest и vscode-python я хотел бы запускать тесты, которые ранее были реализованы с помощью инфраструктуры unittest.
Поэтому я успешно выполнил тесты с использованием pytest в соответствующем каталоге tests
,
pytest
Я также настроил vscode-python и успешно протестировал почти все тесты.
Тем не менее, те тесты, которые загружают данные из подкаталога tests/data
ошибка, потому что vscode-python, кажется, запускает pytest из другого каталога, чем каталог tests tests
,
abc/
|-- tests/
|-- test_function.py
|-- data/
Как я могу настроить vscode-python, чтобы все файлы данных из уже реализованных тестов были успешно прочитаны?
2 ответа
Перейдите в "Настройки" (в VS Code 1.35.0 на macOS):
Меню "Код" >> "Настройки" >> "Настройки"
В панели "Настройки" найдите "python.testing.cwd".
В документах говорится, что 'cwd' 'Указывает необязательный рабочий каталог для модульных тестов.'
Для вашей установки один из способов создания относительного пути для 'python.testing.cwd' заключается в следующем:
- откройте один из файлов данных в "abc/tests/data/" в редакторе кода VS
- щелкните правой кнопкой мыши на вкладке открытого файла в редакторе и выберите "Копировать относительный путь" из выпадающего меню
- вставьте этот относительный путь в поле конфигурации 'python.testing.cwd' (и отредактируйте его перед сохранением)
В качестве альтернативы вы можете захотеть исследовать указание пути, используя одну или несколько переменных кода VS.
Рекомендации:
В.vscode/settings.json
ты можешь положить
{
...
"python.testing.cwd": "${workspaceFolder}/tests",
}