VSCode не обнаруживает pytests для проекта Django
Я новичок в Pytest & Django, поэтому все отзывы и улучшения приветствуются.
Я пытаюсь использовать боковую панель тестирования VSCode в моем проекте Django, но она не может найти файлы pytest. Вот команды, которые я выполнил для создания этого примера проекта:
django-admin startproject LearningPytest
pip install django-pytest
Затем я создал два файла: pytest.ini
и basic_tests.py
, поэтому структура моих папок выглядит следующим образом.
DjangoPyTesting/
└───LearningPytest/
├───LearningPytest/
│ ├───__init__.py
│ ├───asgi.py
│ ├───basic_tests.py
│ ├───settings.py
│ ├───urls.py
│ ├───wsgi.py
├───manage.py
└───pytest.ini
pytest.ini
[pytest]
DJANGO_SETTINGS_MODULE = LearningPytest.settings
python_files = tests.py test_*.py *_tests.py
python_classes = Test*
python_functions = test_*
basic_tests.py
class TestBasicMath:
def setup_method(self, method):
self.x = 2
self.y = 3
def test_addition(self):
assert self.x + self.y == 5
def test_subtraction(self):
assert self.y - self.x == 1
def test_multiplication(self):
assert self.x * self.y == 6
Вот в чем проблема: я хочу использовать боковую панель VSCode для запуска своих тестов, но она не может их найти.
Это сбивает меня с толку, потому что в моем проекте, если я выполняю следующую команду:
DjangoPytesting\LearningPytest>pytest
она успешно работает
platform win32 -- Python 3.11.5, pytest-7.4.4, pluggy-1.3.0
rootdir: C:\Users\{me}\Desktop\DjangoPytesting\LearningPytest
configfile: pytest.ini
plugins: anyio-4.3.0, django-4.9.0
collected 3 items
LearningPytest\basic_tests.py ...platform win32 -- Python 3.11.5, pytest-7.4.4, pluggy-1.3.0
rootdir: C:\Users\{me}\Desktop\DjangoPytesting\LearningPytest
configfile: pytest.ini
plugins: anyio-4.3.0, django-4.9.0
collected 3 items
LearningPytest\basic_tests.py ... 3 passed in 0.02s
Но если я пытаюсь запустить pytest на один уровень выше, он не находит никаких тестов, и я думаю, что это может быть связано с проблемой.
DjangoPytesting>pytest
platform win32 -- Python 3.11.5, pytest-7.4.4, pluggy-1.3.0
rootdir: C:\Users\{me}\Desktop\DjangoPytesting
plugins: anyio-4.3.0, django-4.9.0
collected 0 items
no tests ran in 0.01s
Как заставить боковую панель VSCode находить мои pytests, чтобы я мог запускать тестирование там?
Неудачные попытки решения:
- использование '> Developer: Reload Window'
- https://pytest-django.readthedocs.io/en/latest/tutorial.html
- переименование файла ('test.py', 'tests.py', 'LearningPytest_tests.py')
Расширение Python также предлагает поддержку обнаружения и запуска модульных тестов Django, начиная с VSCode 1.93. Вы можете обнаружить ваши тесты Django, выполнив всего несколько дополнительных шагов по настройке:
- Установите
"python.testing.unittestEnabled": true
, в вашем файле settings.json файл. - Добавьте
MANAGE_PY_PATH
в качестве переменной окружения: Создайте файл .env в корне вашего проекта. - Добавьте
MANAGE_PY_PATH='<path-to-manage.py>'
в файл .env, заменив<path-to-manage.py>
на путь к файлу вашего приложения manage.py. - Добавьте аргументы теста Django к
"python.testing.unittestArgs": []
в файл settings.json по мере необходимости, и удалите все аргументы, которые не совместимы с Django.
PS:Если ваш файл .venv расположен не в корне проекта, добавьте "python.envFile": "${workspaceFolder}/<path-to-.env>"
к вашему settings.json
, чтобы убедиться, что все ваши переменные окружения будут обнаружены.