测试景观和埃舍尔

可测试性

可测试性相关信息:

风景测试软件包

您可以通过以下方式指定软件包:

  • 全部:

    --with //bundles/tests
    
  • 如果需要构建更少的软件包,请逐个执行以下操作:

    --with //src/ui:tests
    --with //src/ui/lib/escher:escher_tests
    

Scenic 和 CQ

对于 紫红色。可在以下位置查看fuchsia-x64-releasefuchsia-x64-asan聊天机器人: https://ci.chromium.org/p/fuchsia/builders.

向现有 CQ 测试添加新的测试套件

大多数风景测试和埃舍尔测试都采用 Googletest。 如果您需要添加测试套件或测试用例,则需要创建测试源文件,并将 作为相应 BUILD.gn 文件中测试可执行文件的来源。

向 CQ 添加测试软件包

如需将测试软件包添加到 CQ,您需要执行以下操作:

  • 创建测试组件;
  • 引用测试软件包;
  • 指定测试环境。

创建测试组件

要向 CQ 添加新的测试包,您需要创建一个测试组件,其中包括源文件、 和 BUILD.gn 文件。请参阅测试组件。 您可以在一个测试软件包中包含多个测试可执行文件,并且所有这些可执行文件 当您在主机上运行 fx test <test_package> 时,系统会执行此测试。

测试软件包示例:

引用测试软件包

为了确保在 CQ 上运行测试,它需要一个不间断的依赖项链,这些依赖项汇总到您的 fx set 命令的可用软件包(可使用 --with 标志扩展),通常 //bundles/packages/tests:all 的所有目标。

您需要确保存在从 //bundles/packages/tests:all 到测试软件包的依赖项链。如需了解详情,请参阅“测试常见问题解答”文档

指定测试环境

为确保在 CQ 上运行该测试,您还需要指定一个 测试环境BUILD.gn

通常,环境设置为 environments = basic_envs。 这指定测试应在 QEMU(适用于 arm64)、FEMU 和 NUC(适用于 x64)上运行,并使用 调试 build 和发布 build。如需在其他环境中运行,请参阅 测试环境

对测试软件包进行传递引用。例如,上述软件包是 由 //bundles/packages/tests:all 通过 //bundles/packages/tests:scenic 引用。

单元测试和集成测试

如需在开发期间在本地运行测试,请执行以下操作:

在设备/模拟器上运行

其中一些测试需要将测试 Scenic 连接到真实的显示屏控制器。

运行 fx shell killall scenic.cm 以终止 Anthos 的活跃实例。

  • 运行所有风景测试:

    在主机工作站上,确保 fx serve 正在运行,然后执行以下操作:

      fx test \
        escher_tests \
        allocation_unittests \
        display_unittests \
        flatland_unittests \
        flatland_buffers_unittests \
        flatland_display_compositor_pixeltests \
        flatland_display_compositor_pixeltests_with_fake_display \
        flatland_engine_unittests \
        flatland_renderer_unittests \
        input_unittests \
        scenic_unittests \
        scheduling_unittests
    

    或从 Fuchsia 目标设备:

    runtests --names escher_unittests,input_unittests,a11y_manager_apptests
    
  • 运行特定的测试二进制文件:

    在主机工作站上,确保 fx serve 正在运行,然后使用以下代码 命令来运行 escher_unittests 测试组件:

    fx test escher_unittests
    
  • 在组件中运行单个测试:

    在主机工作站上,确保 fx serve 正在运行,然后执行以下操作:

    fx test escher_unittests -- --gtest_filter=NoOpMacTest.DummyTestCase
    

    请参阅有关过滤条件参数的 glob 模式的更多文档。

  • 运行特定组件

    在主机工作站上:

    fx test fuchsia-pkg://fuchsia.com/escher_unittests#meta/escher_unittests.cm
    

主机测试

  • fx test --host 会运行所有主机测试,但您可能只想运行 Escher 测试。
  • Escher:如需在 Linux 本地运行 escher_unittests,请按照 Escher 文档

手动界面测试

进行重大 Scenic 更改后,您可能需要运行一些示例应用来进行手动界面测试,以查看是否存在任何回归问题。

界面示例

下面提供了一些示例:

  • flatland-rainbow
    • 使用 Flatland 命令创建界面并将其连接到 场景图:
    • 正在连接到 fuchsia.element.GraphicalPresenter
    • (旧版)服务范围:fuchsia.ui.app.ViewProvider
    • 来源//src/ui/examples/flatland-rainbow
    • 构建依赖项://src/ui/examples/flatland-rainbow
    • 软件包 URI
    • fuchsia-pkg://fuchsia.com/flatland-examples#meta/flatland-rainbow.cm
    • fuchsia-pkg://fuchsia.com/flatland-examples#meta/flatland-rainbow-vulkan.cm

如需运行这些应用,您需要在 fx set 配置中添加以下依赖项:

fx set workbench_eng.x64 --with "//src/ui/examples"

运行界面示例

在会话中运行

您可以在任何会话中通过以下方式启动故事(模块): ffx session add <component_name>。在主机工作站上,运行以下命令:

  fx session add "fuchsia-pkg://fuchsia.com/flatland_examples#meta/flatland-rainbow.cm"

以显示在 flatland-rainbow 组件中创建的 View