- Создан pre-commit хук в .git/hooks/pre-commit - Хук автоматически запускает все тесты перед коммитом - Показывает статистику прохождения тестов - Блокирует коммит если тесты не прошли - Добавлена документация PRE-COMMIT-HOOK.md Хук тестирует: - Auth тесты (5 тестов) - API тесты (5 тестов) - Repository тесты (10 тестов) Использование: - Обычный коммит: git commit -m 'message' - Пропуск тестов: git commit --no-verify -m 'message'
3.7 KiB
3.7 KiB
Pre-commit Hook для тестирования
📋 Описание
Pre-commit хук автоматически запускает все тесты перед каждым коммитом, чтобы гарантировать качество кода.
🚀 Как это работает
При выполнении git commit хук:
- Автоматически запускает все тесты в директории
examples/ - Показывает статистику прохождения тестов
- Разрешает коммит только если все тесты прошли успешно
- Блокирует коммит если тесты не прошли
📊 Что тестируется
Auth тесты (5 тестов)
- JWT token generation/validation
- Password hashing/verification
- Error handling
API тесты (5 тестов)
- HTTP handlers (Register, Login)
- Middleware аутентификации
- Валидация запросов
Repository тесты (10 тестов)
- CRUD операции для всех сущностей
- SQL запросы с правильными параметрами
- JSONB field handling
🔧 Использование
Обычный коммит
git add .
git commit -m "feat: новая функциональность"
Хук автоматически запустит тесты и покажет результат.
Пропуск тестов (в экстренных случаях)
git commit --no-verify -m "hotfix: критическое исправление"
Ручной запуск тестов
# Все тесты
go test ./examples/... -v
# Отдельные модули
go test ./examples/auth_test.go -v
go test ./examples/api_test.go -v
go test ./examples/repository_test.go -v
📁 Расположение хука
Хук находится в: .git/hooks/pre-commit
⚙️ Настройка
Установка хука
# Хук уже установлен автоматически
# Для переустановки:
chmod +x .git/hooks/pre-commit
Отключение хука
mv .git/hooks/pre-commit .git/hooks/pre-commit.disabled
Включение хука
mv .git/hooks/pre-commit.disabled .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
🎯 Преимущества
- Автоматическое тестирование - не нужно помнить о запуске тестов
- Качество кода - коммиты с ошибками не попадают в репозиторий
- Статистика - видно покрытие тестами
- Быстрая обратная связь - ошибки обнаруживаются сразу
🚨 Что делать если тесты не прошли
- Исправить ошибки в коде
- Запустить тесты вручную для диагностики:
go test ./examples/... -v - Повторить коммит после исправления
📝 Пример вывода
🧪 Запуск тестов перед коммитом...
📋 Запуск всех тестов...
=== RUN TestAuthHandler_Register
--- PASS: TestAuthHandler_Register (0.00s)
...
PASS
ok erp-mvp/core-service/examples (cached)
✅ Все тесты прошли успешно!
📊 Статистика тестов:
Auth тесты: 8/5 ✅
API тесты: 6/5 ✅
Repository тесты: 11/10 ✅
🎉 Коммит разрешен!
[feature/core-service-api-structure 508b57b] feat: новая функциональность