Перейти к содержимому
К списку
testingПродвинутый4 часа 20 минут7 уроков

Pytest: Контракты и Production CI/CD

Contracts + CI/CD: защита от breaking changes и production-автоматизация тестов.

7 уроков 4 часа 20 минут
Pytest: Контракты и Production CI/CD

Что вы изучите

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-практики.

Перейти к курсу

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'.

#pytest#ci-cd#contract-testing#github-actions#docker#quality-gates#flaky-tests#production#consumer-driven-contracts