Pytest не нашел мой каталог настроек

Я пытался запустить pytest, но pytest не может найти файл настроек.

Я в virtualenv с Python 3.11.9 и pytest 8.3.2

ImportError: No module named 'drf.settings'
pytest-django could not find a Django project (no manage.py file could be found). You must explicitly add your Django project to the Python path to have it picked up.

вот структура моего проекта

├── README.md
├── drf
│   ├── drf
│   │   ├── __init__.py
│   │   ├── production_settings.py
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   ├── manage.py
│   └── tests
│       ├── __pycache__
│       │   └── test_auth.cpython-311-pytest-8.3.2.pyc
│       ├── factory_boy
│       │   ├── __pycache__
│       │   │   └── factory_models.cpython-311.pyc
│       │   └── factory_models.py
│       └── test_auth.py
├── drf-uwsgi.ini
├── pytest.ini
├── requirements.in
├── requirements.txt

и здесь содержимое pytest.ini

[pytest]
DJANGO_SETTINGS_MODULE = drf.settings
python_files = test_*.py
django_debug_mode = true
pythonpath = .venv/bin/python

Что я пробовал до сих пор:

  • Я попытался добавить init.py в каталог тестов (кажется, не рекомендуется, и это не сработало)
  • деактивировать и повторно активировать virtualenv
  • измените drf.settings.py на drf.drf.settings, но ничего
  • запустить pytest как модуль с тестами python -m pytest

редактировать: в данный момент я могу запустить pytest с любой проблемой, но для этого я использую конкурс и ищу решение с помощью pytest.ini

Если у вас есть предложения ;)

🤔 А знаете ли вы, что...
Python - это универсальный язык программирования.


2
66
1

Ответ:

Решено

Вам нужно добавить pythonpath внутри pytest.ini следующим образом:

[pytest]
pythonpath = drf
DJANGO_SETTINGS_MODULE = drf.settings
python_files = test_*.py

Или вы можете изменить макет tests и переместить pytest.ini из корня проекта в папку tests, вот так Итак, опубликуйте.


Примечание: используйте drf.settings вместо drf.settings.py.