25. Тестирование в Unreal Engine. Complex automation test. Автоматизация UE

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

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

0:00:00 - Введение
0:01:15 - Создаем заглушку для complex automation test
0:03:05 - Класс TTuple
0:07:54 - Complex automation test. Загружаем карты
0:14:04 - Complex automation test. Запускаем записанный инпут
0:23:16 - Усовершенствуем макрос обхода по элементам enum
0:27:22 - Обновляем манекен персонажа

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

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
∎ Functional screenshot test
∎ Дополнительный подход по написаню тестов: 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
-------------------------------------------------------------

Ресурсы:

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

Спасибо за контент! Очень интересно, жду новые выпуски!
Решил чуть добавить что для Кортежа и Пары, а так же структур есть еще один способ распаковки, удобно когда функция возвращает несколько значений например (т.е. кортеж)
// Type alias
using FMyTuple = TTuple<double, float, FString>;

FMyTuple MyTuple{100.0, 0.1f, FString("Name")};
auto[time, delta, name] = MyTuple;
// Используем переменные как обычно, так же можно добавить & к auto

И тоже самое можно внутри массива:
struct FMyPair
{
FString Key;
double Value;
};
TArray<FMyPair> MyArray = {
{FString("Name"), 10.0},
{FString("Name2"), 20.0}
};
for(auto&& MyElem : MyArray)
{
auto&[key, value] = MyElem;
// Используем переменные как обычно, для структур просто пример, более наглядно для TPair подходит
}

А еще, в Unreal 5.1 произвели рефакторинг LowLevelTests, думаю тебе будет интересно, не требуют запускать весь движок или редактор, тесты можно запускать как и все остальные, а так же в BuildGraph и внутри VS или Rider. Используют Catch2 C++ framework.

mikesamsonov
Автор

25:01 ошибочка: for (int32 i = 0; i < Enum->NumEnums() - 1; ++i)

ensiferrus
Автор

Спасибо за всю движуху,
совет тем, у кого ошибка 'initializing': cannot convert from 'initializer list' to 'TArray<TTuple<KeyType, ValueType>, FDefaultAllocator>'.
использовать Maketuple для каждого кортежа внутри TestData

itsjustgundie
Автор

Привет, не знаю как с тобой связаться другим способом. Хотел приобрести на Юдеми твой курс по Unreal Engine C++. Но Юдеми не принимает оплату из России. Я могу купить курс у тебя напрямую?

MightyMindsDev
Автор

Покажи как бота на нейросети написать. Мини-курс.

mokcvny