CTS 是测试 API 兼容性的,那么它到底测试了系统的哪些 API 呢?CTS 的源码里自带了一个覆盖率工具,我们可以用它生成一下报告看一下。
在源码根目录运行:
make cts-test-coverage
编译完成后生成的报告在:
/out/host/linux-x86/cts-api-coverage/test-coverage.html
打开看一下:
分成 3 个颜色,覆盖率 50% 以下的包是红色,覆盖率 50%~80% 的包是黄色,覆盖率 80% 以上的是绿色
点开 android.net.wifi 的 WifiManager 看下:
前面有 X 的就是已经在 CTS 的 case 中覆盖了的 API
可以看到 CTS 并没有覆盖 Android 全部的 API,只覆盖了最常用的部分,如果有需要我们可以自己对一些 CTS 中未覆盖的 API 进行测试,或者如有对 framework 有修改的话,可以写针对性的用例然后生成覆盖率报告看是否有遗漏。