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 для запуска своих тестов, но она не может их найти. VSCode showing no tests found

Это сбивает меня с толку, потому что в моем проекте, если я выполняю следующую команду: 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, чтобы я мог запускать тестирование там?

Неудачные попытки решения:

Расширение Python также предлагает поддержку обнаружения и запуска модульных тестов Django, начиная с VSCode 1.93. Вы можете обнаружить ваши тесты Django, выполнив всего несколько дополнительных шагов по настройке:

  1. Установите "python.testing.unittestEnabled": true, в вашем файле settings.json файл.
  2. Добавьте MANAGE_PY_PATH в качестве переменной окружения: Создайте файл .env в корне вашего проекта.
  3. Добавьте MANAGE_PY_PATH='<path-to-manage.py>' в файл .env, заменив <path-to-manage.py> на путь к файлу вашего приложения manage.py.
  4. Добавьте аргументы теста Django к "python.testing.unittestArgs": [] в файл settings.json по мере необходимости, и удалите все аргументы, которые не совместимы с Django.

PS:Если ваш файл .venv расположен не в корне проекта, добавьте "python.envFile": "${workspaceFolder}/<path-to-.env>" к вашему settings.json, чтобы убедиться, что все ваши переменные окружения будут обнаружены.

Вернуться на верх