29. Тестирование в Unreal Engine. Automation Spec. Автоматизация UE

preview_player
Показать описание
#unrealengine #tests #gamedev #devops #ue4 #unittests #unrealengine5 #ue5 #lifeexe #lifeexecode

Мой курс «Unreal Engine — полное руководство по разработке на С++»

0:00:00 - Приветствие от metahuman
0:00:50 - Тестируем Factorial
0:16:22 - Пишем код для турелли
0:38:45 - Тестируем код для турелли
1:19:54 - Заключение

Ссылки из видео:

Youtube курс посвящен автоматизации разработки в Unreal Engine.

План курса:
-------------------------------------------------------------
✔ Cборка движка из исходного кода
✔ Cборка проекта blueprint игры
✔ Cборка проекта C++ игры
✔ .clang-format, pre-commit .git hook
✔ Сборка UE5 из исходного кода
✔ Unreal version selector / unreal build tool (UBT)
✔ Unreal version selector bug fixes
✔ Сборка бинарной версии из исходников (Installed Build)
✔ Сборка dedicated/listen сервера, подключение клиентов
✔ Тестирование в Unreal Engine. Обзор модуля
✔ Введение в тестирование. Теоретическая часть. Основные понятия
✔ Знакомство с Unreal Testing Automation Frontend. Простейшие unit тесты
✔ Продолжаем знакомство с тестированием в UE. Последовательность Фибоначчи
✔ Тестирование простейшего C++ класса
✔ Создаем C++ инвентарь для тестирования
✔ Тестирование классов UObject. Тестируем компонент инвентаря
✔ Тестирование классов AActor. Тестируем класс единицы инвентаря. Загрузка уровня в тестах. Спаун C++ актора. Загрузка и спаун блюпринта
✔ Тестирование классов AActor. Вызов блюпринт функций из C++
✔ Создаем C++ логику жизней персонажа + автохил
✔ Latent automation command. Тестирование жизней персонажа
✔ Gameplay tests. Симуляция ввода Input Component
✔ Gameplay tests. Запись ввода Input Component. Axis
✔ Gameplay tests. Запись ввода Input Component. Aсtion
✔ Complex automation test
✔ Game User Settings
✔ Тестирование интерфейса. UI tests
✔ Functional screenshot test
➨ Automation spec: Define/Describe/It/BeforeEach/AfterEach
∎ Публикация отчета по тестам. Test Report
∎ Метрики тестирования. Тестовое покрытие. OpenCppCoverage
∎ Создание работы в Jenkins для автоматического запуска тестов с публикацией отчетов
∎ Генерация документации. Doxygen. GitHub Workflows. Jenkins
∎ Jenkins Pipeline сборки игры в Unreal Engine. Slack уведомления
∎ Jenkins Pipeline тестирования игры в Unreal Engine
∎ Jenkins Pipeline сборки исходников Unreal Engine
∎ Использование репозитория DevOps с любым проектом UE
-------------------------------------------------------------

Ресурсы:

Поддержать канал:
Рекомендации по теме
Комментарии
Автор

Отличное видео) полезное и без воды) спасибо, жду следующие)

lolameow
Автор

Как всегда лайк. Единственное приглось пересматривать аоследние пол часа 3 раза ибо с первого раза не все понял. Но в целом понятно.

MrDaFoss
Автор

Как всегда топ! Юрий, что можете посоветовать по мета программированию и шаблонам с++, литературу?

alexsandrbetl
Автор

Отличная лекция, впрочем, как всегда) Спасибо Юрий!
Хотел спросить по поводу упомянутой функции AddExpectedError() - существует ли какая-то возможность использовать эту функцию при условии что ошибка в логе то есть то нет? Параметр Occurrences принимает целое число, а ошибка может как возникнуть, так и не возникнуть, и соответственно функция AddExpectedError() или завалит тест или позволит ему пройти. Пошуршав в, готовых решений не нашел. Или может есть какая-то альтернатива "банящая" ошибку в логе при ее возникновении?

KillshiftRU
Автор

Спасибо за лекцию Юрий, помоги пожалуйста разобрать один момент в тесте SPEC, тестируем оружие и как было сказано мы не должны знать дефолтных значений AmmoCount и FireFrequency и в начале сами устанавливаем значения, так вот я заметил такой баг, когда вы меняем дефолтное значение FireFrequency в нашем тестовом блупринте к примеру 5 с. и тестируем, то тест падает по причине что турель стреляет медленно а значит не записалось наше значение в тесте и используется то что было указано в блепринте, проверил логами в самой турели там где запускаем таймер и да наше значение туда не приходит, получается BeforeEach и LatentBeforeEach когда спавним актора то сразу отрабатывает блок BeginPlay, так ли это или я где то накасячил).

Cat-rygw
Автор

Юрий, решил попробовать перейти на rider, но никак не могу заставить clang-format работать так же как в vs.Можете подсказать какие настройки надо покрутить?

avtooor