Google 致力于为黑人社区推动种族平等。查看具体举措

测试设置

测试套件

对于要添加到 VTS 中的测试,您必须在 Android.bp 中进行以下设置。

test_suites: ["vts"],

此外,如果将测试添加到 general-tests 套件中,它将成为在提交前检查中使用的 Test Mapping 套件的一部分。

测试配置

大多数情况下,测试配置(Trade Federation 用于运行 VTS 测试的 XML 文件)会在构建期间自动生成。不过,您可以自定义测试配置。

创建自定义测试配置文件

从头开始创建新的测试 XML 文件可能很复杂,因为它涉及了解自动化测试框架的工作方式以及每个测试运行程序之间的区别。自动生成的测试配置文件旨在简化这一过程。

如果您必须自定义测试 XML 文件,可以从自动生成的文件入手。

如需查找自动生成的测试配置文件,请先运行 make 命令来构建配置,如下所示。

$ m VtsHalUsbV1_1TargetTest

在构建输出目录中,您可以根据模块名称搜索配置文件,如下所示。

$ find out/ -name VtsHalUsbV1_1TargetTest.config

文件可能有多个副本,您可以使用其中任何一个副本。将 .config 文件复制到 Android.bp 文件所在的目录。

如果 Android.bp 文件中只有一个测试模块,那么您可以将 XML 文件重命名为 AndroidTest.xml,构建系统便会自动将该文件用作测试模块的配置文件。否则,请在模块中添加 test_config 属性,如下例所示。

test_config: "VtsHalUsbV1_1TargetTest.xml",

现在,您便拥有了一个可用的测试配置文件,用于实现您想要的自定义配置。

强制要求使用 adb root 运行测试

大多数 VTS 测试都需要 root 权限才能运行。如果测试配置文件是自动生成的,您可以将以下属性添加到 Android.bp

require_root: true,

对于自定义测试配置文件,请将以下代码添加到测试 XML 文件中。

<target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>

在测试期间停止框架

许多 VTS 测试无需 Android 框架即可运行;如果在停止框架的情况下运行测试,测试将可以稳定运行,而不会受设备不稳定问题的影响。如果测试配置文件是自动生成的,您可以将以下属性添加到 Android.bp

disable_framework: true,

对于自定义测试配置文件,请将以下代码添加到测试 XML 文件中。

<target_preparer class="com.android.tradefed.targetprep.StopServicesSetup"/>

添加其他测试参数

某些 gtest 测试可能需要更多运行时间。在这种情况下,您可以在 XML 文件中添加一些测试运行程序选项。

例如,以下条目中的 native-test-timeout 设置允许测试在超时时限设为 3 分钟(而非 1 分钟)的情况下运行。

   <test class="com.android.tradefed.testtype.GTest" >
       <option name="native-test-device-path" value="/data/local/tmp" />
       <option name="module-name" value="VtsHalNfcV1_0TargetTest" />
       <option name="native-test-timeout" value="180000"/>
   </test>

最低 API 级别要求

一些 VTS 测试只能在不低于某个 API 级别的设备上运行。如果测试配置文件是自动生成的,您可以将以下属性添加到 Android.bp

test_min_api_level: 29,

对于自定义测试配置文件,请将以下命令添加到测试 XML 文件中。

   <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MinApiLevelModuleController">
       <option name="min-api-level" value="29" />
   </object>

使用 VTS 对测试过程进行分片

对于 Android 10 或更高版本,您可以按照以下说明,在使用 VTS 和 CTS-on-GSI 计划进行测试时将测试过程拆分到多台设备。

run vts --shard-count <number of devices> -s <device serial> ...

此命令会将 VTS 计划拆分为多个分片,并在多台设备上运行。

run cts-on-gsi --shard-count <number of devices> -s <device serial> -s ...

此命令会将 CTS-on-GSI 计划拆分为多个分片,并在多台设备上运行。