Тестирование в Gifty 🧪
Качество кода и надежность алгоритмов рекомендаций обеспечиваются через автоматизированное тестирование с использованием pytest.
🚀 Запуск тестов локально
Для запуска тестов вам необходимо установить зависимости (включая тестовые):
Основные команды:
# Запуск всех доступных тестов
pytest
# Запуск тестов из конкретного файла
pytest tests/test_recommendations.py
# Запуск с детальным выводом (verbose)
pytest -v
⚙️ Управление составом тестов (tests_config.yaml)
В корне проекта находится файл tests_config.yaml. Он позволяет гибко включать и отключать группы тестов без изменения кода. Это полезно для ускорения работы или экономии ресурсов (например, при использовании платных AI API).
Пример структуры:
test_groups:
recommendations: true # Алгоритмы подбора
routes: true # API эндпоинты
ai_intelligence: false # Тяжелые тесты AI (по умолчанию выключены)
Преимущества такой схемы:
- Скорость: В CI/CD на ветке
developможно отключать тяжелые тесты. - Экономия: Тесты, требующие вызова внешних LLM, включаются только вручную перед релизом.
- Динамический пропуск: Если группа отключена в конфиге,
pytestпометит их какSKIPPED.
🔄 Тесты в CI/CD
Автоматические тесты запускаются при каждом Pull Request в ветку develop и main.
IMPORTANT
Вы не сможете влить (merge) свой код, если тесты не прошли (пайплайн будет помечен красным).
Что проверяется в CI:
- Корректность работы API (все роуты возвращают ожидаемый формат данных).
- Целостность моделей базы данных.
- Базовая логика рекомендаций.
Если ваши тесты упали в GitHub Actions, проверьте логи во вкладке Actions в репозитории.