Skip to content

QA-7: Ускорение и стабилизация тестов #107

Description

@ii-reviewer

Цель: ускорить тестовый прогон через singleton-контейнеры и параллелизм, убрать флаки из-за общего состояния.
Зависимость: INIT-6.

Что сделать

  • Переведи Testcontainers на singleton/reuse: один набор контейнеров (postgres/redis/kafka) на весь прогон вместо подъёма на класс. Статические контейнеры в AbstractIntegrationTest без @Container-рестарта + .withReuse(true) и ~/.testcontainers.properties (testcontainers.reuse.enable=true).
  • Включи параллельный прогон JUnit 5 (junit-platform.properties: junit.jupiter.execution.parallel.enabled=true). Учти: общая БД + параллель = гонки за данные.
  • Убери общее состояние между тестами: чистка/откат данных (@Transactional либо truncate перед тестом), уникальные SKU/username на тест, никакого порядка-зависимого прохождения.
  • Трудные места: изоляция данных при общей БД и параллели (схема-на-поток, префиксы, очистка); найти и починить флаки (зависимость от времени, от порядка, race в Kafka-консьюмере); измерь время прогона до/после и приложи цифры.

Acceptance criteria

  • Контейнеры переиспользуются (не поднимаются заново на каждый класс)
  • Тесты гоняются параллельно и проходят стабильно
  • Прогон в произвольном порядке зелёный (нет зависимости от порядка)
  • Зафиксировано время прогона до/после с ускорением
  • Данные изолированы между тестами

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciCI/CD, автоматизация сборкиperformanceПроизводительность

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions