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)
使用流程
- •选择测试类型与模板
- •替换命名空间、类名、测试方法名
- •填充 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标记的目录