Как автоматическое тестирование интегрируется в CI?

Автоматическое тестирование является неотъемлемой частью CI (Continuous Integration) и интегрируется через построение пайплайна, который выполняется при каждом коммите или пул-реквесте.


Принцип работы

  1. Коммит в репозиторий

    • Разработчик пушит изменения в ветку (например, develop или feature).

  2. Триггер CI

    • CI-система (Jenkins, GitLab CI/CD, GitHub Actions) обнаруживает новый коммит и запускает пайплайн.

  3. Сборка проекта

    • Компиляция или установка зависимостей.

    • Создание артефактов (например, Docker-образов).

  4. Запуск автоматических тестов

    • Юнит-тесты: проверка отдельных функций или классов.

    • Интеграционные тесты: проверка взаимодействия компонентов.

    • E2E-тесты (при необходимости): проверка работы системы целиком.

  5. Отчётность и уведомления

    • CI формирует отчёт о прохождении тестов.

    • При падении тестов разработчики получают уведомление (Slack, email).

  6. Решение о следующем шаге

    • Если тесты прошли успешно, изменения могут быть слиты в основную ветку или отправлены на 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?