Unreal Engine CQTest 测试代码生成
Skill 定位
用于快速选择测试类型、套用模板与 Helper,并给出 CQTest 结构化写法与 Latent Actions 使用建议。
前置准备
- CQTest 模块已添加到项目 Build.cs 的依赖列表中
- 需要时启用 Code Quality Unreal Test Plugin(可选,仅供参考)
- 项目已配置好编译环境
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)
使用流程
- 选择测试类型与模板
- 替换命名空间、类名、测试方法名
- 填充 BEFORE_EACH/AFTER_EACH 与断言
- 需要多帧逻辑时引入 Latent Actions
- 在 Unreal Editor 的 Sessions Frontend 运行测试
资源索引
- CQTest 核心概念:references/cqtest-framework.md
- 测试组件说明:references/test-components.md
- 测试类型详解:references/test-types.md
- Latent Actions:references/latent-actions.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标记的目录