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
105 lines
1.9 KiB
Markdown
105 lines
1.9 KiB
Markdown
# Тесты для state-corp-backend
|
|
|
|
Документ описывает организацию и запуск тестов в проекте `state-corp-backend`.
|
|
|
|
## Структура
|
|
|
|
```text
|
|
tests/
|
|
├── conftest.py
|
|
├── utils/
|
|
└── apps/
|
|
├── core/
|
|
├── user/
|
|
├── organization/
|
|
├── form_1/
|
|
├── form_2/
|
|
├── form_3/
|
|
├── form_4/
|
|
├── form_5/
|
|
└── form_6/
|
|
```
|
|
|
|
## Запуск
|
|
|
|
Рекомендуемый способ:
|
|
|
|
```bash
|
|
make test
|
|
```
|
|
|
|
Через скрипт:
|
|
|
|
```bash
|
|
./scripts/run-tests.sh
|
|
```
|
|
|
|
Конкретное приложение:
|
|
|
|
```bash
|
|
make test TARGET=core
|
|
make test TARGET=user
|
|
make test TARGET=organization
|
|
make test TARGET=form_1
|
|
```
|
|
|
|
Через `pytest` напрямую:
|
|
|
|
```bash
|
|
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 режим:
|
|
|
|
```bash
|
|
make test-prod
|
|
```
|
|
|
|
Он использует `src/settings/test_postgres.py`, PostgreSQL и реальные миграции.
|
|
|
|
## Маркеры
|
|
|
|
Поддерживаются стандартные маркеры:
|
|
|
|
- `unit`
|
|
- `integration`
|
|
- `models`
|
|
- `views`
|
|
- `serializers`
|
|
- `services`
|
|
- `slow`
|
|
|
|
Примеры:
|
|
|
|
```bash
|
|
uv run pytest -m "unit"
|
|
uv run pytest -m "not slow"
|
|
uv run pytest -k test_models
|
|
```
|
|
|
|
## Покрытие
|
|
|
|
```bash
|
|
make test-cov
|
|
```
|
|
|
|
Или напрямую:
|
|
|
|
```bash
|
|
./scripts/run-tests.sh ../tests --cov=src --cov-report=term-missing --cov-report=xml --cov-report=html
|
|
```
|