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' заключается в следующем:

  1. откройте один из файлов данных в "abc/tests/data/" в редакторе кода VS
  2. щелкните правой кнопкой мыши на вкладке открытого файла в редакторе и выберите "Копировать относительный путь" из выпадающего меню
  3. вставьте этот относительный путь в поле конфигурации 'python.testing.cwd' (и отредактируйте его перед сохранением)

В качестве альтернативы вы можете захотеть исследовать указание пути, используя одну или несколько переменных кода VS.

Рекомендации:

  1. [ https://code.visualstudio.com/docs/python/unit-testing
  2. [ https://code.visualstudio.com/docs/editor/variables-reference]

В.vscode/settings.jsonты можешь положить

      {
    ...
    "python.testing.cwd": "${workspaceFolder}/tests",
}
Другие вопросы по тегам