# Unreal Test

> 用于生成或改写 Unreal Engine CQTest 自动化测试代码。适用于选择测试类型、套用模板/Helper、组织 Latent Actions、整理测试步骤与断言时使用。 Use when this capability is needed.

- Skill: `tomevault-io/unreal-test` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/unreal-test`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/unreal-test/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/unreal-test

---


# Unreal Engine CQTest 测试代码生成

## Skill 定位
用于快速选择测试类型、套用模板与 Helper，并给出 CQTest 结构化写法与 Latent Actions 使用建议。

## 前置准备
- CQTest 模块已添加到项目 Build.cs 的依赖列表中
- 需要时启用 Code Quality Unreal Test Plugin（可选，仅供参考）
- 项目已配置好编译环境
```c#
public class TestsRuntime : ModuleRules
{
	public TestsRuntime(ReadOnlyTargetRules Target) : base(Target)
	{
		PrivateDependencyModuleNames.AddRange(
			new string[]
			{
				"CQTest",
				"CQTestEnhancedInput",
			}
		);
		

		if (Target.bBuildEditor)
		{
			PrivateDependencyModuleNames.AddRange(
				new string[] {
					"EngineSettings",
					"LevelEditor",
					"UnrealEd"
			});
		}
	}
}
```

## 快速选择
- 基础断言 → `TEST`（模板：`basic-test-template.cpp`）
- 结构化测试 → `TEST_CLASS`（模板：`test-class-template.cpp`）
- Actor → `ActorTestHelper`（模板：`actor-test-template.*`）
- Animation → `AnimationTestHelper`（模板：`animation-test-template.*`）
- Input → `InputTestHelper`（模板：`input-test-template.*`）
- Network → `PIENetworkComponent`（模板：`network-test-template.*`）
- Map → `MapTestSpawner`（模板：`map-test-template.cpp`）

## 使用流程
1. 选择测试类型与模板
2. 替换命名空间、类名、测试方法名
3. 填充 BEFORE_EACH/AFTER_EACH 与断言
4. 需要多帧逻辑时引入 Latent Actions
5. 在 Unreal Editor 的 Sessions Frontend 运行测试

## 资源索引
- **CQTest 核心概念**：[references/cqtest-framework.md](references/cqtest-framework.md)
- **测试组件说明**：[references/test-components.md](references/test-components.md)
- **测试类型详解**：[references/test-types.md](references/test-types.md)
- **Latent Actions**：[references/latent-actions.md](references/latent-actions.md)
- **最佳实践**：[references/best-practices.md](references/best-practices.md)
- **模板与 Helper**：见 `assets/templates/` 与 `assets/helpers/`

## 注意事项
- 优先使用 Latent Actions（FWaitUntil）而非固定延时（FWaitDelay）以提高稳定性
- 确保每个测试独立，避免依赖执行顺序
- 使用 AFTER_EACH 正确清理资源，避免泄漏
- 涉及网络或 Blueprint 的测试需指定 `EAutomationTestFlags::EditorContext`
- 测试命名建议：`测试场景_预期行为`
- 使用 `TEST_CLASS` 的 Setup/Teardown 机制减少重复代码
- 测试地图不要放在 `/Maps` 目录，避免被默认烘焙；可放到 `DirectoriesToNevercook` 标记的目录

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/greatinterface) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-13 -->

