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"
)