android官网译文《CTS Development》-cts的二次开发

android官网译文《CTS Development》-cts的二次开发

译文地址

初始化您的Repo客户端

按照说明获取和构建Android源代码,当使用repo init命令时,需要为CTS分支指定一个特定的名称,例如-b android-5.0_r2。这样CTS的修改才会下当前以及之后的版本生效。

构建以及运行cts

执行以下命令来构建CTS和启动交互式CTS控制台:

提示:使用AOSP x86_64的或AOSP MIPS来指定TARGET_PRODUCT,用于搭建不同的架构:

`cd /path/to/android/root
make cts -j32 TARGET_PRODUCT=aosp_arm64
cts-tradefed`

在cts-tf控制台中输入:
run cts --plan CTS

编写cts测试用例

CTS测试使用JUnit和Android Test API。如果要执行cts/tests目录下的测试用例,请先参照文档Testing and Instrumentation,cts测试大部分遵从以下条件:
* 必须考虑到不同的屏幕大小,方向,和键盘布局。
* 仅使用公共API方法。避免使用所有加上hide注解的的类,方法和字段。
* 避免依赖于特定视图布局或依赖于特定的尺寸资源。
* 不要依赖root权限

大多数CTS测试用例都是针对Android API中的某个类而言的。这些测试的包名统一使用cts作为后缀,测试类统一使用Test所为后缀。每一个测试用例包含一系列的测试项,每一项通常用来测试API的方法或者类。这些测试均按文件夹分类存放(比如widget或者views)

比如,存放在目录cts/tests/tests/widget/src/android/widget/cts下的android.widget.cts.TextViewTest是针对android.widget.TextView类的cts测试,测试包的名称为android.widget.cts,测试类的名称为TextViewTestTextViewTest类中的testSetText方法用于测试setText方法,testSetSingleLine方法用于测试setSingleLine方法每项测试都加上了@TestTargetNew的注解,用于表面涵盖哪些测试。

一些cts测试虽然也放在相关的包中但是并不是直接用于API类的测试,
例如,在CTS测试,在android.net.cts包下的android.net.cts.ListeningPortsTest,虽然并没有对应的被测试类android.net.ListeningPorts,但因为它是与网络相关的,所以依然也存放到该包下。您还可以根据需要创建一个新的测试包。例如,有一个android.security测试包为与安全相关的测试。因此,添加新的测试时,尽量根据这种方法去命名和存放你的测试包。

最后,虽然很多的测试都使用@TestTargets和@TestTargetNew进行注解。但对于新添加的测试而言,并没有必要去添加这些注解。

测试的名称以及位置

新建一个测试包样例

在新建一个测试包的时候,也许当前并没有对应的目录存放你的测试包,这种情况下,需要参照cts/tests/tests/example中的样例去新建一个目录。
此外,请务必确保将新包的模块名已经添加到cts/CtsTestCaseList.mk文件的CTS_COVERAGE_TEST_CASE_LIST中,
这个Makefile被build/core/tasks/cts.mk调用,最后将所有测试合并以创建最终的CTS包。

测试的修复以及移除

除了添加新的测试意外,通过注解BrokenTestKnownFailure修改或去除测试。

提交你的修改

按照Submitting Patches workflow提交cts的修改,提交前需要对你的修改进行审视。

发布以及分支信息

cts的发布需要遵从以下时间安排:

提示:这个时间安排只是暂定的,随时都可能更新。

VersionBranchFrequency
6.0marshmallow-cts-devMonthly
5.1lollipop-mr1-cts-devMonthly
5.0lollipop-cts-devMonthly
4.4kitkat-cts-devNo releases planned
4.3jb-mr2-cts-devNo releases planned
4.2jb-mr1.1-cts-devNo releases planned

几个重要的日期

  • 结束后的第一周代码冻结。此时,当前分支的任何修改均无法提交,下一个cts版本也不会包含任何修改,一旦确定了发布候选日期,分支接口才会重新开发并且接受新的提交。
  • 第二、三周:cts会在Android 开源项目上发布

自动合并

CTS分支开发中,每个分支的更改会自动合并:
jb-dev-> jb-mr1.1-cts-dev -> jb-mr2-cts-dev -> kitkat-cts-dev -> lollipop-cts-dev -> lollipop-mr1-cts-dev ->

如果变更列表(CL)没有正确合并时,CL的作者将收到一封冲突解决说明的电子邮件。在大多数的情况下,CL的作者可以使用该说明解决合并时的冲突。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值