Pytest: Контракты и Production CI/CD
Contracts + CI/CD: защита от breaking changes и production-автоматизация тестов.

Что вы изучите
Production-готовность тестов: от контрактного тестирования до полноценного CI/CD. Настраиваем Consumer-Driven Contracts для защиты от breaking changes между Frontend и Backend. Строим production CI/CD в GitHub Actions: параллельный запуск, шардирование, flaky tests detection, quality gates, matrix strategy. 4.5 часа практики с полным .github/workflows/test.yml для копирования в свой проект.
Contract Testing: защита от breaking changes
Consumer-Driven Contracts для API между Frontend и Backend. Pact или JSON Schema. Ловим breaking changes до продакшена на примере Todo-приложения.
Production CI/CD: из 10 минут в 2 минуты
GitHub Actions: параллельный запуск, шардирование тестов, кеширование Docker-образов. Matrix strategy для Python 3.10/3.11/3.12 и PostgreSQL 14/15/16. Полный production-готовый workflow.
Quality Gates: автоматическая защита main
Coverage thresholds, flaky tests detection и карантин, performance regression, security scanning. Branch protection rules. Останавливаем плохие PR автоматически.
Отзывы
выпускники“If you can't deploy your software to production on demand, you're not doing Continuous Delivery.”
Martin Fowler
“The key to fast flow is small batch sizes and parallel execution.”
Jez Humble (Continuous Delivery)
“Consumer-Driven Contracts are a technique for evolving services in a service-oriented architecture without breaking existing consumers.”
Ian Robinson (Consumer-Driven Contracts)
Что внутри курса
Contract Testing: Consumer-Driven Contracts, Pact или JSON Schema для API между Frontend и Backend
Практика Contracts: API Todo-приложения, ловим breaking changes до продакшена
GitHub Actions production: параллельный запуск, шардирование, кеширование Docker-образов
Flaky Tests Detection: автоматическое обнаружение и карантин нестабильных тестов
Quality Gates: coverage thresholds, performance regression, security scanning
Matrix Strategy: тестирование на разных версиях Python (3.10/3.11/3.12) и PostgreSQL (14/15/16)
Полный .github/workflows/test.yml: готовый production CI/CD для копирования в свой проект
Требования
Pytest: Профессиональные инструменты
обязательноОбязателен курс Уровень 3. Вы должны знать: продвинутые фикстуры, pytest-xdist, src layout, плагины.
Перейти к курсуPytest: Legacy Code и TDD
Рекомендуется пройти перед этим курсом. Даёт контекст работы с реальным проектом и TDD-практики.
Перейти к курсуПрограмма курса
Contract Testing: Consumer-Driven Contracts
40 минут
Практика: Контракты для Todo API
40 минут
CI/CD: Параллельный запуск и шардирование
50 минут
CI/CD: Автоматическая детекция Flaky Tests
40 минут
CI/CD: Quality Gates и защита main
50 минут
CI/CD: Matrix Strategy для разных версий
40 минут
Финал: Полный Production CI/CD проект
60 минут
FAQ
Нужно ли проходить курс 'Legacy Code и TDD'?
Не обязательно, но рекомендуется. Он даёт контекст работы с реальным проектом (Todo-приложение). Этот курс фокусируется на CI/CD и контрактах, а не на разработке тестов.
Я использую GitLab CI, а не GitHub Actions. Курс полезен?
Да! Концепции (параллельный запуск, шардирование, quality gates, flaky detection) универсальны. Синтаксис GitHub Actions легко адаптируется под GitLab CI, Jenkins, CircleCI и другие.
У меня нет контрактов с Frontend. Курс актуален?
Даже если не используете контракты сейчас, CI/CD-часть курса (4+ часа) полностью применима. Контракты — бонус для команд с микросервисами или API для клиентов.
Что делать после этого курса?
Внедрить в свой проект: настроить production CI/CD, добавить quality gates, оптимизировать время прогона. Если работаете с async — переходите к курсу 'Async Race Conditions'.
Дополнительные материалы
Эти материалы дополняют курс, но не являются его частью. Изучайте по желанию.
Тестирование БД с PostgreSQL
Если работаете с БД в CI/CD: Alembic, factory_boy, Testcontainers. Рекомендуется для настройки БД в GitHub Actions.
Pytest: Async Race Conditions
Специализация для async-разработчиков. Можно пройти параллельно с этим курсом, если работаете с asyncio в CI/CD.
Pytest: Legacy Code и TDD
Предыдущий курс серии. Если ещё не проходили — рекомендуется для понимания контекста проекта.