feat(coverage): add coverage-summary script, README section, ADR-0013

- scripts/coverage-summary.sh — unified coverage summary generator
  Runs pytest+coverage (unit/integration) and vitest+coverage,
  parses results, generates single HTML report with both stacks.
  Supports --unit, --backend-only, --frontend-only, --output-dir.
- README.md — add 'Покрытие кода' sub-section under Тестирование
- docs/adr/ADR-0013-coverage-reporting.md — architectural decision record
This commit is contained in:
2026-06-15 13:40:22 +03:00
parent e8021c8f74
commit 6989bb0bc9
3 changed files with 654 additions and 0 deletions

View File

@@ -15,6 +15,7 @@
- [Быстрый старт](#-быстрый-старт)
- [Документация](#-документация)
- [Тестирование](#-тестирование)
- [Покрытие кода](#-покрытие-кода)
- [Enterprise Clean Deployment](#-enterprise-clean-deployment)
- [Авторизация](#-авторизация)
- [Мониторинг](#-мониторинг)
@@ -216,6 +217,8 @@ docker compose -f dist/docker/docker-compose.light.yml up -d
## 🧪 Тестирование
### Запуск тестов
```bash
# Backend тесты
cd backend && source .venv/bin/activate && pytest
@@ -227,6 +230,43 @@ cd frontend && npm run test
pytest tests/test_auth.py::test_create_user
```
### 📊 Покрытие кода
Сводный отчёт о покрытии генерируется скриптом `scripts/coverage-summary.sh`:
```bash
# Полный запуск (backend integration + frontend)
./scripts/coverage-summary.sh
# Backend unit-тесты (SQLite) + frontend (быстрее, не требует Docker)
./scripts/coverage-summary.sh --unit
# Только frontend
./scripts/coverage-summary.sh --frontend-only
# Только backend unit
./scripts/coverage-summary.sh --backend-only --unit
# Указать директорию для отчёта
./scripts/coverage-summary.sh --output-dir ./reports/coverage
```
Скрипт выполняет:
1. Запуск backend-тестов (pytest) с `--cov=src` — unit (`--unit`) или integration (`--run-integration`)
2. Запуск frontend-тестов (vitest) с `--coverage`
3. Парсинг результатов тестов и процентов покрытия
4. Генерацию единого HTML-отчёта в `coverage-summary/index.html` со сводкой по обоим стекам
**Текущие показатели:**
| Стек | Тип тестов | Процент | Покрытие (Stmts) |
|------|-----------|---------|------------------|
| Backend (unit) | 1723 | 1721/2 ✅ | 48% |
| Backend (integration) | 167 | 167/0 ✅ | 12% |
| Frontend | 2443 | 2442/1 ✅ | 99.25% |
> HTML-отчёты coverage по каждому стеку открываются из сводного отчёта по ссылкам.
## 🏢 Enterprise Clean Deployment
Для разворота в корпоративной сети с очищенным дистрибутивом (без тестовых данных, с запретом внешних источников и обязательной compliance-проверкой) используется профиль **enterprise clean**.