AndroidTestUtilities

3.7 版本中新增。

此模块提供了一个命令,用于创建将测试所需数据推送到已连接的Android设备上的测试,以测试Android设备行为。

在 CMake 项目中加载此模块,使用

include(AndroidTestUtilities)

命令

此模块提供以下命令

android_add_test_data

创建自动将指定数据加载到Android设备上的测试

android_add_test_data(
  <test-name>
  [FILES <files>...]
  [FILES_DEST <device-dir>]
  [LIBS <libs>...]
  [LIBS_DEST <device-dir>]
  DEVICE_OBJECT_STORE <device-dir>
  DEVICE_TEST_DIR <device-dir>
  [NO_LINK_REGEX <regexes>...]
)

此命令接受运行项目特定测试所需的文件和库,以及每个文件的单独目标。它将创建一个测试,将文件加载到设备对象存储中,并从指定的目标链接到它们。文件仅在其尚未位于对象存储中时才上传。

在主机操作系统上,文件和库在构建时复制。对于设备上测试,文件在运行时由制造的测试加载到设备上。

此命令接受以下命名参数

FILES <files>...

测试所需的零个或多个文件。

FILES_DEST <device-dir>

数据文件预期的绝对路径。

LIBS <libs>...

测试所需的零个或多个库。

LIBS_DEST <device-dir>

库预期的绝对路径。

DEVICE_OBJECT_STORE <device-dir>

数据文件最初存储在设备上的绝对路径。

DEVICE_TEST_DIR <device-dir>

设备上测试位置的根目录的绝对路径。

NO_LINK_REGEX <regexes>...

匹配从对象存储复制到测试目录而不是符号链接的文件名的正则表达式模式列表。

示例

以下示例展示了如何使用此模块创建名为 example_setup_test 的测试,该测试在构建阶段准备数据。然后可以使用 ctest(1) 运行此测试,将数据加载到Android设备上。

CMakeLists.txt
include(AndroidTestUtilities)

android_add_test_data(
  example_setup_test
  FILES data/protobuffer.p data/file.txt
  LIBS libs/library_1 libs/library_2
  DEVICE_OBJECT_STORE "/sdcard/.ExternalData/SHA"
  DEVICE_TEST_DIR "/data/local/tests/example"
)