Как автоматическое тестирование интегрируется в CI?
Автоматическое тестирование является неотъемлемой частью CI (Continuous Integration) и интегрируется через построение пайплайна, который выполняется при каждом коммите или пул-реквесте.
Принцип работы
Коммит в репозиторий
Разработчик пушит изменения в ветку (например,
develop
илиfeature
).
Триггер CI
CI-система (Jenkins, GitLab CI/CD, GitHub Actions) обнаруживает новый коммит и запускает пайплайн.
Сборка проекта
Компиляция или установка зависимостей.
Создание артефактов (например, Docker-образов).
Запуск автоматических тестов
Юнит-тесты: проверка отдельных функций или классов.
Интеграционные тесты: проверка взаимодействия компонентов.
E2E-тесты (при необходимости): проверка работы системы целиком.
Отчётность и уведомления
CI формирует отчёт о прохождении тестов.
При падении тестов разработчики получают уведомление (Slack, email).
Решение о следующем шаге
Если тесты прошли успешно, изменения могут быть слиты в основную ветку или отправлены на staging.
Если тесты упали, процесс останавливается, и ошибки исправляются.
Пример GitHub Actions
name: CI Pipeline
on: [push, pull_request]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
run: pytest tests/
При каждом push или PR пайплайн собирает проект и запускает тесты автоматически.
Итог: автоматическое тестирование в CI позволяет выявлять ошибки на ранних этапах разработки, поддерживает стабильность кода и ускоряет процесс интеграции изменений.
Last updated
Was this helpful?