为了实现软件代码的完全覆盖率,应执行 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_host_test
声明表示这是一项 JAR 主机测试。
设置
下面对各项设置进行了说明:
name: "HelloWorldHostTest",
如果指定了 java_test_host
模块类型(在块的开头),则需要进行 name
设置。这项设置可以为您的模块命名,而且生成的 JAR 将与模块命名相同,不过其名称会带有 .jar
后缀。例如,在本例中,生成的测试 JAR 将命名为 HelloWorldHostTest.jar
。此外,此设置还可以为您的模块定义 make 目标名称,以便您可以使用 make [options]
<HelloWorldHostTest>
来编译测试模块及其所有依赖项。
test_suites: ["general-tests"],
test_suites
设置可让 Trade Federation 自动化测试框架轻松发现测试。可在此处添加其他套件(如 CTS),以便共享此测试。
static_libs: [
"junit",
],
static_libs
设置会指示编译系统将已命名模块的内容合并到当前模块的已生成的 APK 中。这意味着,每个已命名模块都会生成 .jar
文件,其内容将用于在编译期间解析类路径引用,以及合并到生成的 apk 中。