Skip to content

Allure-инвентаризация автоматизированных тестов #59

Closed
6 of 6 issues completed

Description

@vladcheck

Problem Statement

Разработчик не видит, какие автоматизированные тесты существуют в десктоп-клиенте и чего не хватает: тесты разбросаны по unit-, mock-UI- и live-интеграционным наборам, связи со страницами приложения (вход, список ресурсов, просмотр метаданных ресурса, форма ресурса, список пользователей, форма пользователя), ролями (пользователь, модер, админ, гость) и проверками ввода нет. По отсутствию покрытия страниц управления пользователями нельзя судить «по отсутствию». Нужен единый каталог тестов на русском языке, доступный локально и в конвейере.

Solution

Подключить Allure как инвентарь всех автоматизированных тестов: единый отчёт поверх штатного прогона показывает каталог по доменам и страницам, минимальную роль каждого теста и слой (обычный прогон против live-интеграции). По умолчанию отчёт строится только по воспроизводимому прогону без живого бэкенда; live-интеграция собирается только явным запуском. В конвейере отчёт и сырые результаты прикладываются как артефакт.

User Stories

  1. Как разработчик, я хочу открыть локальный Allure-отчёт после штатного прогона, чтобы увидеть каталог тестов без живого бэкенда.
  2. Как разработчик, я хочу видеть в отчёте русские названия классов и методов, чтобы понимать поведение без чтения кода.
  3. Как новый участник команды, я хочу видеть структуру по доменам (аутентификация, ресурсы, пользователи, проверка ввода, отображение данных), чтобы быстро понять продукт.
  4. Как разработчик, я хочу видеть разбивку по страницам (вход, список ресурсов, просмотр метаданных ресурса, форма ресурса, список и форма пользователя), чтобы сопоставить тесты с назначением страниц.
  5. Как разработчик, я хочу фильтровать тесты по минимальной роли (пользователь, модер, админ), чтобы проверять покрытие иерархии доступа.
  6. Как разработчик, я хочу видеть тесты гостевых путей отдельно, чтобы отличать неаутентифицированные сценарии.
  7. Как разработчик, я хочу видеть роле-независимые unit-тесты отдельно, чтобы не путать их с ролевыми.
  8. Как разработчик, я хочу отличать в отчёте обычный прогон от live-интеграции по метке, чтобы не запускать бэкенд случайно.
  9. Как разработчик, я хочу явно запускать полный отчёт с live-интеграцией против локального бэкенда, чтобы проверить сквозные сценарии ресурсов и аутентификации.
  10. Как ревьюер, я хочу скачать из конвейера сырые результаты и готовый отчёт как артефакт, чтобы проверить покрытие pull request без локального запуска.
  11. Как мейнтейнер, я хочу отсутствие тестов страниц управления пользователями видеть «по отсутствию» в каталоге, чтобы планировать работу.
  12. Как разработчик, я хочу видеть покрытие поведения удаления ресурса с подтверждением и поиска/сортировки списка, чтобы не дублировать тесты.
  13. Как разработчик, я хочу видеть покрытие скачивания и экспорта отдельно от UI-поведения, чтобы различать сервисный слой и страницы.
  14. Как мейнтейнер, я хочу требование русских названий и ролевых меток для новых тестов, чтобы каталог не деградировал.
  15. Как разработчик, я хочу читать в документации порядок локального просмотра и явного live-запуска, чтобы воспроизвести любой отчёт.

Implementation Decisions

  • Главный шов — аннотации автоматизированных тестов: домен верхним уровнем, страница/сервис средним, поведение нижним; слой live-интеграции только существующей меткой группы, новых слоёв не вводится.
  • Отображаемые имена — русские предложения на каждом классе и методе; технические имена классов остаются только идентификаторами кода.
  • Минимальная роль — штатной меткой группы прогона со значениями пользователь/модер/админ; гостевые пути и роле-независимые unit-тесты помечаются явно отдельными значениями, отсутствие метки запрещено (иначе «забыл» неотличимо от «независимый»).
  • Вспомогательный шов сборки: адаптер Allure для используемого тестового фреймворка подключается через существующий механизм провайдера отчётов без изменения конфигурации запуска headless-UI и исключения live-группы по умолчанию; генератор отчёта — штатным плагином сборки.
  • Вспомогательный шов публикации: существующее задание тестов в конвейере после прогона всегда выгружает сырые результаты и сгенерированный отчёт как артефакт с ограниченным сроком хранения; генерация отчёта не должна ронять задание при отсутствии результатов.
  • Вспомогательный шов документации: раздел про тесты описывает просмотр по умолчанию и явный live-запуск с требованиями окружения; про live-бэкенд в конвейере речи нет.
  • Версии адаптера и генератора фиксируются совместимые с текущими тестовым фреймворком и выпуском языка; проверка стиля и форматирования обязана проходить.
  • Схема данных, HTTP-контракты и поведение приложения не меняются; меняется только наблюдаемость тестов.

Testing Decisions

  • Хороший тест проверяет внешнее поведение (каталог в отчёте, фильтрация по роли и слою), а не детали реализации сборки.
  • Проверяются: наличие адаптера в тестовой конфигурации сборки, наличие русских имён и доменных/страничных аннотаций на всех существующих тестах, наличие явной ролевой метки на каждом тесте, генерация непустого отчёта штатным прогоном, выгрузка артефакта заданием конвейера.
  • Приор: существующие unit-тесты проверок ввода и отображения данных, mock-UI тесты списка/деталей/формы ресурсов и mock-потока, live-интеграционные тесты входа и ресурсов за явным флагом групп.

Out of Scope

  • Шаги, вложения, скриншоты при падениях, история и тренды, ретраи и flaky-анализ.
  • Публикация на статический хостинг, выделенный сервер отчётов и внешняя система тест-менеджмента.
  • Новая сюита приёмки, фичи-файлы, моки HTTP и запуск живого бэкенда в конвейере.
  • Кастомные типы меток Allure вне штатных меток групп; англоязычные имена как основной инвентарь.
  • Изменение продуктового поведения, ролевой модели и страниц.

Further Notes

  • Таксономия опирается на глоссарий (ресурс, пользователь, роль, гость, проверка ввода, скачивание, экспорт) и матрицу страниц с RBAC-иерархией (младшая роль включается в старшую).
  • Срок хранения артефакта — две–четыре недели; решение принято как «максимум» без новой инфраструктуры.
  • Расширение шагами и вложениями — отдельная задача после стабилизации каталога.

Activity

  1. vladcheck commented on Oct 16, 2026

    @vladcheck
    OwnerAuthor

    Готово: влиты PR #66, #68–#73 (скелет, каталоги unit/mock-UI/входа/live, артефакт CI, выравнивание таксономии). Отчёт собирается штатным прогоном, тикеты #60–#65 закрыты.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions