Some checks failed
CI/CD Pipeline / Run Tests (push) Failing after 45s
CI/CD Pipeline / Code Quality Checks (push) Failing after 48s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
CI/CD Pipeline / Deploy to Server (push) Has been skipped
Тесты для state-corp-backend
Документ описывает организацию и запуск тестов в проекте state-corp-backend.
Структура
tests/
├── conftest.py
├── utils/
└── apps/
├── core/
├── user/
├── organization/
├── form_1/
├── form_2/
├── form_3/
├── form_4/
├── form_5/
└── form_6/
Запуск
Рекомендуемый способ:
make test
Через скрипт:
./scripts/run-tests.sh
Конкретное приложение:
make test TARGET=core
make test TARGET=user
make test TARGET=organization
make test TARGET=form_1
Через pytest напрямую:
export PYTHONPATH=src:$PYTHONPATH
export DJANGO_SETTINGS_MODULE=settings.test
uv run pytest tests
Конфигурация
Тесты используют src/settings/test.py.
Особенности:
- SQLite in-memory.
- Local memory cache.
- Синхронное выполнение Celery-задач.
- Отключённые миграции для быстрого прогона.
- Упрощённые password hashers.
Production-like режим:
make test-prod
Он использует src/settings/test_postgres.py, PostgreSQL и реальные миграции.
Маркеры
Поддерживаются стандартные маркеры:
unitintegrationmodelsviewsserializersservicesslow
Примеры:
uv run pytest -m "unit"
uv run pytest -m "not slow"
uv run pytest -k test_models
Покрытие
make test-cov
Или напрямую:
./scripts/run-tests.sh ../tests --cov=src --cov-report=term-missing --cov-report=xml --cov-report=html