AOSP的自定义测试套件

时间:2019-05-13 21:34:35

标签: android android-source

我正在开发针对Android P的自定义设备,并添加了使用某些隐藏API的自定义系统服务。然后,该服务将被不属于AOSP源代码树的android应用程序使用。

我为我的服务添加了一些单元和仪器测试,现在想将它们集成到我的CI管道中。最好的方法是什么-扩展CTS?但这只是我的服务,没有公开任何公共API。 VTS?但是afaik VTS仅用于测试HAL和内核。有没有一种方法可以声明自定义测试套件,使其能够使用诸如“ tradefed.sh run my_test_suite”之类的贸易联合会/ Atest工具运行它?

3 个答案:

答案 0 :(得分:0)

由于您的更改是AOSP代码的一部分,因此CTS/VTS涵盖了兼容性测试套件所需的所有测试用例。我认为,不需要将您的自定义测试套件添加为CTS/VTS测试用例的一部分。但是,您可以为模块编写独立的单元测试用例。即使您在现有的CTS代码中添加了扩展名,它也没有用,因为最终的CTS将在官方测试套件(用于验证和正式发布的Google提交)上运行。

有关更多详细信息,请参阅https://source.android.com/compatibility/tests

答案 1 :(得分:0)

Atest使用TEST_MAPPING查找应运行的测试。因此,如果您只想使用API测试APK /服务,则可以将工具测试模块添加到代码顶部目录的TEST_MAPPING中,然后在代码顶部运行atest目录以运行仪器测试。

source.android.com提供了document,有关如何使用atest运行基于TEST_MAPPING的工具测试和贸易联盟测试。

如果您的单元测试基于Robolectric,则atest可以正确运行,因为atest在Android P中也支持Robolectric单元测试。

答案 2 :(得分:0)

最后,我找到了我想要的东西-关于如何添加自定义TradeFed测试套件标签(基于Android P来源)有很好的解释-[aosp] / tools / tradefederation / core / tests / res / config / suite / suite.md

基本上,您必须创建一个像这样的新配置文件(到目前为止,我试图按照文档中的说明将其添加到TradeFederation文件夹中):

<?xml version="1.0" encoding="utf-8"?>
<configuration description="My test suite config">
    <test class="com.android.tradefed.testtype.suite.TfSuiteRunner">
        <option name="run-suite-tag" value="my-test-suite" />
    </test>
</configuration>

然后在这样的测试配置文件中使用它:

<option name="test-suite-tag" value="my-test-suite" />

然后您可以像这样执行您的套件:

make tradefed-all
make YourTestModule    
tradefed.sh run template/local --template:map test=suite/my-test-suite