Repository navigation
Allure-инвентаризация автоматизированных тестов #59
Description
Problem Statement
Разработчик не видит, какие автоматизированные тесты существуют в десктоп-клиенте и чего не хватает: тесты разбросаны по unit-, mock-UI- и live-интеграционным наборам, связи со страницами приложения (вход, список ресурсов, просмотр метаданных ресурса, форма ресурса, список пользователей, форма пользователя), ролями (пользователь, модер, админ, гость) и проверками ввода нет. По отсутствию покрытия страниц управления пользователями нельзя судить «по отсутствию». Нужен единый каталог тестов на русском языке, доступный локально и в конвейере.
Solution
Подключить Allure как инвентарь всех автоматизированных тестов: единый отчёт поверх штатного прогона показывает каталог по доменам и страницам, минимальную роль каждого теста и слой (обычный прогон против live-интеграции). По умолчанию отчёт строится только по воспроизводимому прогону без живого бэкенда; live-интеграция собирается только явным запуском. В конвейере отчёт и сырые результаты прикладываются как артефакт.
User Stories
- Как разработчик, я хочу открыть локальный Allure-отчёт после штатного прогона, чтобы увидеть каталог тестов без живого бэкенда.
- Как разработчик, я хочу видеть в отчёте русские названия классов и методов, чтобы понимать поведение без чтения кода.
- Как новый участник команды, я хочу видеть структуру по доменам (аутентификация, ресурсы, пользователи, проверка ввода, отображение данных), чтобы быстро понять продукт.
- Как разработчик, я хочу видеть разбивку по страницам (вход, список ресурсов, просмотр метаданных ресурса, форма ресурса, список и форма пользователя), чтобы сопоставить тесты с назначением страниц.
- Как разработчик, я хочу фильтровать тесты по минимальной роли (пользователь, модер, админ), чтобы проверять покрытие иерархии доступа.
- Как разработчик, я хочу видеть тесты гостевых путей отдельно, чтобы отличать неаутентифицированные сценарии.
- Как разработчик, я хочу видеть роле-независимые unit-тесты отдельно, чтобы не путать их с ролевыми.
- Как разработчик, я хочу отличать в отчёте обычный прогон от live-интеграции по метке, чтобы не запускать бэкенд случайно.
- Как разработчик, я хочу явно запускать полный отчёт с live-интеграцией против локального бэкенда, чтобы проверить сквозные сценарии ресурсов и аутентификации.
- Как ревьюер, я хочу скачать из конвейера сырые результаты и готовый отчёт как артефакт, чтобы проверить покрытие pull request без локального запуска.
- Как мейнтейнер, я хочу отсутствие тестов страниц управления пользователями видеть «по отсутствию» в каталоге, чтобы планировать работу.
- Как разработчик, я хочу видеть покрытие поведения удаления ресурса с подтверждением и поиска/сортировки списка, чтобы не дублировать тесты.
- Как разработчик, я хочу видеть покрытие скачивания и экспорта отдельно от UI-поведения, чтобы различать сервисный слой и страницы.
- Как мейнтейнер, я хочу требование русских названий и ролевых меток для новых тестов, чтобы каталог не деградировал.
- Как разработчик, я хочу читать в документации порядок локального просмотра и явного 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
Выровнять таксономию Allure-каталога со спекой (#73)
vladcheck commentedon Oct 16, 2026
Готово: влиты PR #66, #68–#73 (скелет, каталоги unit/mock-UI/входа/live, артефакт CI, выравнивание таксономии). Отчёт собирается штатным прогоном, тикеты #60–#65 закрыты.