Я недавно сменил IDE, которую я использую, на VSCode. По большей части мне это нравится, но есть одна конкретная проблема, которую я не могу решить. Я тоже не осознавал, что это проблема, пока не переместил IDE.
У меня есть такая структура каталогов:
my_app
├── env
│ ├── bin
│ ├── include
│ ├── lib
│ ├── lib64 -> lib
│ ├── pyvenv.cfg
│ └── share
├── my_app
│ ├── expected_results
│ ├── __init__.py
│ ├── test_data
│ └── tests
├── pytest.ini
├── README.rst
├── setup.cfg
└── setup.py
Когда я запускаю свою виртуальную среду, я сижу в корне этой структуры каталогов.
Я запускаю свои тесты, выполняя эту команду (или предоставляя дополнительные параметры). В настоящее время это работает:
pytest
Но, когда VSCode запускается, он выдает ошибку, говоря, что не может найти ожидаемый файл:
E FileNotFoundError: [Errno 2] No such file or directory: 'my_app/expected_results/expected_available_items.yml'
После некоторого расследования я выяснил, что это потому, что при запуске VSCode он запускает следующую команду:
python -m pytest
Я устанавливаю этот путь следующим образом:
import pathlib
EXPECTED_RESULTS_BASE = pathlib.Path("my_app/expected_results")
expected_results = EXPECTED_RESULTS_BASE.joinpath('expected_available_items.yml')
Что мне нужно изменить, чтобы мои тесты продолжали работать, когда я просто ввожу команду pytest
И сработает, если я (или, по-видимому, моя IDE) выдаю python -m pytest
?
Надеюсь, можно с уверенностью предположить, что VSCode запускает это из корня my_app
, как я?