automation-and-testing

Write and run automated tests for Unreal Engine projects across all test layers.

1|Updated Sep 6, 2026
One-click install
npx skills add https://github.com/ziyarduc/Baran-bk-game --skill automation-and-testing-ziyarduc
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: automation-and-testing
Source: https://github.com/ziyarduc/Baran-bk-game/tree/main/.agents/skills/automation-and-testing
Command: npx skills add https://github.com/ziyarduc/Baran-bk-game --skill automation-and-testing-ziyarduc

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Unreal Engine has a layered test ecosystem (simple/complex automation tests, BDD specs, functional tests, low-level Catch2 tests, Gauntlet), and choosing the wrong layer or misconfiguring flags leads to tests that never run, crash CI, or hang indefinitely. This Skill guides you to the right test type and provides correct, engine-version-accurate code patterns. ## Core Features & Use Cases - Layered Test Guidance: Covers simple/complex automation tests, BDD-style Specs (DEFINE_SPEC, Describe/It/BeforeEach), AFunctionalTest in-level tests, Catch2-based low-level tests, and Gauntlet, with a decision table for when to use each. - Assertion & Flag Reference: Documents the FAutomationTestBase assertion API (TestTrue, TestEqual, TestNotNull, AddError) and the full EAutomationTestFlags context/filter/priority matrix so tests appear and run in the right CI buckets. - CI & Headless Execution: Provides command-line recipes for running tests via UnrealEditor-Cmd with -ExecCmds, report export, test groups, and resume support for CI pipelines. - Use Case: You need regression tests for a damage calculation system and a gameplay integration test for a character ability. The Skill gives you a simple automation test for the math, a functional test actor pattern for the ability, and the headless CI command to run both on every commit. ## Quick Start Ask the AI to write a simple automation test for a specific gameplay system using IMPLEMENT_SIMPLE_AUTOMATION_TEST with the correct context and filter flags, then provide the headless command line to run it in CI.

Frequently Asked Questions about automation-and-testing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a unit test in Unreal Engine C++?▼

Use IMPLEMENT_SIMPLE_AUTOMATION_TEST with a dotted name and EAutomationTestFlags combining one context flag and one filter flag. Implement RunTest using TestTrue, TestEqual, and TestNotNull assertions, and place the file in your module's Private/Tests directory.

What is the difference between automation tests and functional tests in Unreal?▼

Automation tests (FAutomationTestBase) run without a full world and suit unit or content-stress checks. Functional tests (AFunctionalTest) are actors placed in a test map with a running world, used for gameplay integration, AI, and physics scenarios.

How do I run Unreal automation tests from the command line in CI?▼

Run UnrealEditor-Cmd with -ExecCmds="Automation RunTest <dotted.prefix>;Quit" plus -unattended, -nopause, and -nullrhi for headless execution. Add -ReportExportPath to export JSON and HTML results, and check the exit code for pass/fail.

Why does my Unreal automation test not appear in the test browser?▼

The test is missing either a context flag or a filter flag in EAutomationTestFlags; every test must OR together at least one of each. Also verify the test module is compiled and the dotted path string is unique.

When should I use low-level Catch2 tests instead of FAutomationTestBase?▼

Use Catch2-based low-level tests when your logic has no UObject or world dependency and you need sub-second CI feedback from a thin standalone executable. Use FAutomationTestBase or functional tests when the test needs the engine, editor, or a running world.

Why does my Unreal functional test hang in CI?▼

The test never called FinishTest, or an async PrepareTest never satisfied IsReady_Implementation. Always call FinishTest and set the TimeLimit property on the test actor so CI runs are bounded.