НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2673] Инфраструктура модульного тестирования системы на базе TestA📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Новые возможности | 2026.3 | 🔘 Завершено |
Средний | Ilya Mikhaylenko |
Компоненты: Нет
Завершено: 09.07.2026 15:12
Требуется спроектировать и реализовать встроенную инфраструктуру модульного и интеграционного тестирования системы на базе модуля TestA.
Цель: перед открытием PR иметь возможность запускать проверку модулей, __callметодов, Actions, Pages и пользовательских сценариев, получать единый отчет в интерфейсе и JSONрезультат для автоматизаций.
Предлагаемая архитектура:
Критерии приемки:
-
I128-2673 добавляет встроенную инфраструктуру модульного и интеграционного тестирования на базе модуля TestA для ветки develop. PR включает runner/reporting слой, UI и JSON actions для запуска и чтения отчетов, настройки уровней/провайдеров и первые демонстрационные проверки для Queue, включая пишущий сценарий на изолированной очереди.
Куда смотреть:
?id=TestA/Dashboard Запустить; результат открывается через ?id=TestA/Report&runid=<runid>, JSON?id=WIrbis&action=TestA/GetInventoryJson. Chrome: подтверждено на ?id=TestA/Dashboard, ?id=WIrbis&action=TestA/GetInventoryJson и ?id=TestA/Report&runid=20260708203833~~d5a3c43c; отчет показал Всего: 98, успешно: 98, ошибки: 0, заблокировано: 0, пропущено: 0. Было: не было единой панели запуска TestA, реестра целей, страниц отчета и JSON, разрешенные уровниsafe, матрица провайдеровDPIrbis64Native,DPIrbis64Direct. Пишущие Queue-проверки запускаются только при выборе уровнейwrites,queueи работают через изолированныйTestA/QueueSandbox`, а не через рабочую очередь.?id=Help/Show&m=TestA/Testing; Chrome readback подтвердил разделы про размещение тестов, уровни, провайдеры, панель ?id=TestA/Dashboard, JSON-инвентарь, запуск suite и чтение отчета.содержит текущийorigin/develop(eff35a470401b4d33c07d666b7e4fd16a74f015e) и отправлена вorigin/feature/I128-2673`; зависимостей от других PR нет.Изменения по файлам:
modules/TestA/api.php
TestA: добавлены настройки уровней проверок, разрешенных web-запусков, read/write БД и матрицы провайдеров.modules/TestA/include/Runner.php
__call, actions, pages и сценариев, нормализует уровни/провайдеры, запускает suite/module/target и сохраняет JSON-отчеты.TestA_Runner, нормализация options, сканирование целей, явные и структурные проверки, summary/report persistence.DataPath/TestA/Reports.modules/TestA/include/TestCase.php
TestA*TestCase и контекст TestA*Context.id, title, target, level, status, durationMs, message, details, error, artifacts.Ok, Failed, Skipped, Blocked, Warning и Check* для нескольких проверок одной цели.modules/TestA/include/ActionHelper.php
Content~~Type, читает параметры запуска из action/request, нормализует target/options и возвращает JSON~~ответы без дублирования кода в actions.modules/TestA/Pages/Dashboard.page
modules/TestA/Pages/Report.page
runid.failed/blocked/warning, а также ссылку на JSON отчета.modules/TestA/Actions/GetInventoryJson.inc
modules/TestA/Actions/GetReportJson.inc
runid или ошибку, если отчет не найден.modules/TestA/Actions/ListReportsJson.inc
modules/TestA/Actions/RunSuite.inc
Queue через TestA/RunSuiteWorker.modules/TestA/Actions/RunSuiteWorker.inc
modules/TestA/Actions/RunTarget.inc
modules/TestA/__call/AdminModuleVariablesInit.inc
modules/TestA/__call/GetInventory.inc
*_call. Возвращает inventory через TestA*Runner.modules/TestA/__call/GetRunReport.inc
__call. Загружает отчет по runid.modules/TestA/__call/ListRunReports.inc
__call. Возвращает список сохраненных отчетов.modules/TestA/__call/RunModule.inc
__call. Запускает проверки одного модуля.modules/TestA/__call/RunSuite.inc
__call. Запускает набор проверок с переданными options.modules/TestA/__call/RunTarget.inc
__call. Запускает отдельную цель.modules/TestA/Tests/Module.inc
modules/TestA/Tests/Actions/GetInventoryJson.inc
modules/TestA/Tests/__call/GetInventory.inc
__call. Проверяет, что inventory возвращается как массив с целями и счетчиками.modules/TestA/Help/Purpose.md
modules/TestA/Help/Root.md
modules/TestA/Help/Testing.md
modules/Queue/Tests/Module.inc
modules/Queue/Tests/QueueTestSupport.php
QueueInfo.db, JSON-декодирования, изолированной очереди, вставки строк, подмены request/session/cache и уборки sandbox.DataPath/LockPath в TestA/QueueSandbox, создают отдельную SQLite-базу, восстанавливают состояние и удаляют sandbox после теста.modules/Queue/Tests/Scenarios/WriteQueueLifecycle.inc
writes,queue. Проверяет полный жизненный цикл изолированной очереди: append, dedup, batch, выбор задачи, progress, reset/state/pause/multy, очистку done/error/timeout, monitor/vacuum/process/kill/empty.modules/Queue/Tests/Actions/AppendTaskAndMonitor.inc
modules/Queue/Tests/Actions/ChangeOnlyHighState.inc
modules/Queue/Tests/Actions/ChangePause.inc
modules/Queue/Tests/Actions/ChangePauseState.inc
modules/Queue/Tests/Actions/ChangeUnPause.inc
modules/Queue/Tests/Actions/EmptyQueue.inc
modules/Queue/Tests/Actions/GetState.inc
modules/Queue/Tests/Actions/GetTaskInfo.inc
modules/Queue/Tests/Actions/KillAllStuck.inc
modules/Queue/Tests/Actions/KillThread.inc
modules/Queue/Tests/Actions/PauseTask.inc
modules/Queue/Tests/Actions/ProcessDispatcher.inc
modules/Queue/Tests/Actions/ProcessThread.inc
modules/Queue/Tests/Actions/QueueMonitor.inc
modules/Queue/Tests/Actions/RemoveTask.inc
modules/Queue/Tests/Actions/ResetTask.inc
modules/Queue/Tests/Actions/RetrieveRemoteResult.inc
modules/Queue/Tests/Actions/SetMulty.inc
modules/Queue/Tests/Actions/SetProgress.inc
modules/Queue/Tests/Actions/SetState.inc
modules/Queue/Tests/Actions/Vacuum.inc
modules/Queue/Tests/Pages/InfoQueue.inc
modules/Queue/Tests/__call/AdminModuleVariablesInit.inc
__call. Проверяет регистрацию административных настроек Queue.modules/Queue/Tests/__call/Append.inc
__call. Проверяет добавление задачи в изолированную очередь.modules/Queue/Tests/__call/AppendBatch.inc
__call. Проверяет пакетную постановку задач.modules/Queue/Tests/__call/AppendMonitors.inc
__call. Проверяет постановку monitor-задач.modules/Queue/Tests/__call/CheckPause.inc
__call. Проверяет чтение глобального pause-состояния.modules/Queue/Tests/__call/ClearDonedTasks.inc
__call. Проверяет очистку завершенных задач с истекшим сроком хранения.modules/Queue/Tests/__call/ClearErroredTasks.inc
__call. Проверяет обработку ошибочных задач и retry/fatal ветки.modules/Queue/Tests/__call/ClearTimeoutedTasks.inc
__call. Проверяет перевод зависших задач в ошибку.modules/Queue/Tests/__call/GetActionCount.inc
__call. Проверяет подсчет задач по action.modules/Queue/Tests/__call/GetDbQ.inc
__call. Проверяет открытие SQLite-базы очереди и схему таблицы.modules/Queue/Tests/__call/GetProgress.inc
__call. Проверяет чтение progress/progressmsg.modules/Queue/Tests/__call/GetRecordBlock.inc
__call. Проверяет получение блока записей очереди.modules/Queue/Tests/__call/GetRecordCount.inc
__call. Проверяет подсчет записей очереди.modules/Queue/Tests/__call/GetRecordValue.inc
__call. Проверяет чтение отдельного значения записи очереди.modules/Queue/Tests/__call/GetSingleRow.inc
__call. Проверяет чтение одной строки SQLite.modules/Queue/Tests/__call/GetTaskForStart.inc
__call. Проверяет выбор следующей задачи для запуска с учетом приоритета.modules/Queue/Tests/__call/GetTaskInfoElm.inc
__call. Проверяет форматирование поля карточки задачи.modules/Queue/Tests/__call/MonitorSubTasksProgress.inc
__call. Проверяет агрегацию прогресса подзадач.modules/Queue/Tests/__call/SetMonitorLogFile.inc
__call. Проверяет привязку файла журнала monitor-задачи.modules/Queue/Tests/__call/SetPauseState.inc
__call. Проверяет запись pause/only-high состояний.modules/Queue/Tests/__call/SetProgress.inc
__call. Проверяет обновление progress/progressmsg.modules/Queue/Tests/__call/SetTaskInfoElm.inc
__call. Проверяет запись элемента информации задачи.modules/Queue/Tests/__call/SqlBatch.inc
__call. Проверяет пакетное выполнение SQL на базе очереди.modules/Queue/Tests/__call/SqlExec.inc
__call. Проверяет выполнение SQL-команды.modules/Queue/Tests/__call/SqlInsert.inc
__call. Проверяет insert и возвращаемый идентификатор.modules/Queue/Tests/__call/StartProcessBackground.inc
__call. Проверяет запуск фонового процесса очереди.modules/Queue/Tests/__call/StartThread.inc
__call. Проверяет старт рабочего потока очереди.