可测试性
可测试性相关信息:
风景测试软件包
您可以通过以下方式指定软件包:
全部:
--with //bundles/tests
如果需要构建更少的软件包,请逐个执行以下操作:
--with //src/ui:tests --with //src/ui/lib/escher:escher_tests
Scenic 和 CQ
对于
紫红色。可在以下位置查看fuchsia-x64-release
和fuchsia-x64-asan
聊天机器人:
https://ci.chromium.org/p/fuchsia/builders.
向现有 CQ 测试添加新的测试套件
大多数风景测试和埃舍尔测试都采用
Googletest。
如果您需要添加测试套件或测试用例,则需要创建测试源文件,并将
作为相应 BUILD.gn
文件中测试可执行文件的来源。
向 CQ 添加测试软件包
如需将测试软件包添加到 CQ,您需要执行以下操作:
- 创建测试组件;
- 引用测试软件包;
- 指定测试环境。
创建测试组件
要向 CQ 添加新的测试包,您需要创建一个测试组件,其中包括源文件、
和 BUILD.gn 文件。请参阅测试组件。
您可以在一个测试软件包中包含多个测试可执行文件,并且所有这些可执行文件
当您在主机上运行 fx test <test_package>
时,系统会执行此测试。
测试软件包示例:
- allocation_unittests://src/ui/scenic:allocation_unittests
- escher_tests://src/ui/lib/escher:escher_tests
引用测试软件包
为了确保在 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
。