SuperAPI AI 工具集

ohos-dev-graphics-pixel-tests-generator

测试与质量

查看项目

更新于 10-16 07:28

技能介绍

用途:为 OpenHarmony Rosen 图形像素比对框架生成符合仓库风格的 C++ 测试,目标目录通常为 graphic_test/test。

主要能力:按被测行为选择测试目录与 RSGraphicTestType(如 CONTENT_DISPLAY_TEST、ANIMATION_TEST、EFFECT_TEST 等);选择 GRAPHIC_TEST、GRAPHIC_TESTS、GRAPHIC_N_TEST 等宏;构建 RSGraphicTest fixture;生成确定性的可见像素输出;正确注册并保活渲染节点;新增 .cpp 时更新 graphic_test/test/BUILD.gn 的分类 sources 数组。

使用方式:先定位真实 graphic_test 根目录,阅读 rs_graphic_test.h、rs_graphic_test_ext.h 及最接近的现有测试文件,明确 Purpose、Existing、Type、Pixels、Build 检查点,再按需读取 references 下的 framework-lifecycle、test-taxonomy-build、code-patterns、templates 参考文件。节点加入场景后需调用 RegisterNode;父子节点可能离开作用域时都要注册;子窗口用 AddChildToSubWindow 后仍需 RegisterNode。自动测试通常依赖 TearDown 统一 flush 与截图,仅在手动截图、立即查询渲染结果等场景添加 RSTransactionProxy::GetInstance()->FlushImplicitTransaction(),并 include transaction/rs_interfaces.h。

适用场景:节点外观与几何、动画协议、NG shader/filter/effect、PixelMap/font/symbol 开放能力、脏区与 HWC/GPU composer、surface/screen capture、框架 surface 行为、Effect Kit NDK filter 等像素比对测试。

限制:不要为普通 graphic test 新建 ohos_unittest target;不要凭空发明 Drawing helper 或 RenderService API;不要使用无法保证存在的图片资源路径;不要无脑添加 flush 与 sleep;GRAPHIC_TESTS 仅用于同一 fixture 多 test surface 聚合成网格截图;GRAPHIC_D_TEST 除非涉及录制回放否则不用。多数视觉属性测试不在 C++ 中断言像素值,而是由框架保存 PNG 到 /data/local/graphic_test/... 后比对。