Каждая Task автоматически тестируется перед слиянием — как узкими модульными тестами, так и более широкими сквозными тестами, проверяющими работающее приложение. Представление Testing показывает тесты проекта независимо от какой-либо отдельной Task.
Тестирование
Тесты в детальном представлении Task
В детальном представлении Task шаг Test показывает результат модульных тестов проекта (сколько пройдено, сколько провалено и вывод по каждому сбою), а шаг E2E показывает результат сквозных сценариев — имитированных действий пользователя в реально работающем приложении. Если Test или E2E завершается сбоем, шагу Fix передаются сведения о сбое, он пытается устранить проблему, и тестирование запускается снова; это может автоматически повторяться несколько раз. Если после допустимого числа попыток тесты по-прежнему не проходят, Task получает статус failed, а сведения о сбое остаются прикреплёнными к ней.
Представление Testing и его вкладки
По умолчанию в представлении Testing три внутренние вкладки: History — Dashboard, History — Modules и Unit Tests. Остальные вкладки — Setup, Dashboard, Verdicts, E2E Plans, Scenarios, Integration Tests, Release Tests и E2E Cockpit — существуют, но скрыты, пока не будут включены в настройке навигации.
Вкладка Unit Tests
На вкладке Unit Tests находятся кнопка Run unit tests, итоги последнего запуска (пройдено, провалено, пропущено), таблица Run History (дата, пройдено, провалено, всего, длительность) и справа — отдельные тесты выбранного запуска с фильтрами, например Passed и Failed. Нажмите на запуск в Run History, чтобы вывести его тесты; отфильтруйте по Failed, чтобы прочитать ошибку каждого проваленного теста. Запуск, который не завершился, помечается как crashed с указанием причины и кнопкой Ask AI to fix.
Вердикты Verify
После тестирования шаг Verify повторно проверяет каждый критерий приёмки Task и записывает один из трёх вердиктов:
- passed — проверка выполнена и соответствует ожидаемому.
- failed — проверка выполнена и не соответствует ожидаемому; в выводе указано, что было запущено, что ожидалось и что получено.
- unverifiable — проверку вообще не удалось выполнить (например, требуется работающий экземпляр, который недоступен). Это никогда не приводит к провалу Task; пункт указывается как ожидающий ручной проверки.
Build & Start/Stop
Можно запустить сборку проекта, а затем запустить или остановить его работающий экземпляр на отдельном выделенном порту — независимо от изолированных экземпляров, которые Pipeline поднимает для E2E-тестирования во время Task.
Текущий статус и вывод терминала
С первого взгляда видно, работает ли экземпляр, собирается или остановлен, а вывод его терминала/консоли можно просматривать в реальном времени — это удобно, чтобы убедиться в успешной сборке или выяснить, почему она не удалась.
Остановка выполняющегося запуска тестов
Длительный набор модульных тестов можно остановить в любой момент прямо из представления Testing, не дожидаясь его завершения. Если сервер AITM перезапускается во время выполнения тестов, запуск безопасно прерывается — при следующем старте он не останется в состоянии "running"; сервер обнаруживает и сбрасывает его.
Общий бюджет CPU/RAM для тестов
Модульные и E2E-тесты используют один общий бюджет CPU и памяти, автоматически подстраивающийся под размер сервера, на котором работает AITM. Тесты выполняются последовательно, поэтому их совокупное потребление ресурсов никогда не перегружает хост — это защищает от сбоев, вызванных одновременным запуском нескольких тестовых нагрузок.
История вердиктов E2E
Каждый сквозной тестовый запуск, записанный для этого проекта, сохраняется на вкладке Verdicts (по умолчанию скрыта) вместе с вердиктом (pass, feature bug, environment error и т. д.) и временной шкалой, по которой можно прокрутить назад и увидеть, как менялось состояние тестов со временем.
Выпадающий список индикатора багов
Выпадающий список индикатора багов в верхней панели показывает не более 10 последних багов, оставаясь быстрым и читаемым даже в проектах с длинной историей багов. В нём всегда присутствует ссылка Open Bug Section — даже когда список недавних элементов пуст, — поэтому список никогда не оказывается тупиком; полный перечень багов всегда в одном щелчке, независимо от количества недавних элементов.
Советы
- Собственный экземпляр проекта лучше держать остановленным, когда он активно не тестируется, — это освобождает порт для изолированных E2E-экземпляров Pipeline.
- Перед повторным запуском полного набора тестов стоит проверить историю вердиктов E2E — прошлая ошибка окружения может объяснять сбой, который на самом деле не является багом в коде.