JAR 主机测试

应实施 Java 归档 (JAR) 主机测试,以便为您的软件提供完整的代码覆盖率。按照说明构建本地单元测试。编写小型单元测试以验证特定功能,仅此而已。

示例

以下 Blueprint 文件提供了一个简单的 Hello World JAR 主机测试示例,您可以复制并根据自己的需求进行调整:platform_testing/tests/example/jarhosttest/Android.bp

这对应于以下位置的实际测试代码:platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java

为了方便起见,此处包含 Blueprint 文件的快照

java_test_host {
    name: "HelloWorldHostTest",

    test_suites: ["general-tests"],

    srcs: ["test/**/*.java"],

    static_libs: [
        "junit",
        "mockito",
    ],
}

开头的 java_test_host 声明表明这是一个 JAR 主机测试。有关其用法的示例,请参见:frameworks/base/tools/powermodel/Android.bp

设置

请参阅下文,了解以下设置的说明

  • 当指定 java_test_host 模块类型(在代码块的开头)时,name 设置是必需的。此设置用于为您的模块命名,生成的 JAR 文件具有相同的名称和 .jar 后缀。在下面的示例中,生成的测试 JAR 文件名为 HelloWorldHostTest.jar。此外,此设置还定义了模块的 make 目标名称,因此您可以使用 make [options] <HelloWorldHostTest> 来构建您的测试模块及其所有依赖项。

    name: "HelloWorldHostTest",
    
  • test_suites 设置使 Trade Federation 测试工具可以轻松发现该测试。此处可以添加其他测试套件,例如 CTS,以便可以共享 JAR 主机测试。

    test_suites: ["general-tests"],
    
  • static_libs 设置指示构建系统将命名模块的内容合并到当前模块的生成的 APK 中。这意味着每个命名的模块都应生成一个 .jar 文件。模块的内容用于解析编译时的类路径引用,并合并到生成的 APK 中。

    static_libs: [
        "junit",
    ],