JAR (Java) 主机测试

为了实现软件代码的完全覆盖率,应执行 JAR 主机测试。请按照相关说明构建本地单元测试。只需编写小型单元测试以验证特定功能即可。

示例

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

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

为了方便起见,我们在此处附上了该蓝图文件的快照:

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",
    ],