【问题标题】:Custom test suite for AOSPAOSP 的自定义测试套件
【发布时间】:2019-05-20 23:52:22
【问题描述】:

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

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

【问题讨论】:

    标签: android android-source


    【解决方案1】:

    Atest 使用TEST_MAPPING 来查找应该运行的测试。因此,如果您只想使用 API 测试您的 APK/服务,也许您可​​以将您的仪器测试模块添加到代码顶层目录中的 TEST_MAPPING,然后运行代码顶层目录中的 atest 来运行您的仪器测试.

    source.android.com 提供了document 关于如何使用 atest 来运行基于 TEST_MAPPING 的仪器测试和 tradefederation 测试。

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

    【讨论】:

      【解决方案2】:

      最后我找到了我要找的东西 - 关于如何添加自定义 TradeFed 测试套件标签(基于 Android P 源)的一个很好的解释 - [aosp]/tools/tradefederation/core/tests/res/config/套件/套件.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
      

      【讨论】:

        【解决方案3】:

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

        更多详情请参考https://source.android.com/compatibility/tests

        【讨论】:

        • 是的,这就是我想创建自己的测试套件的原因,以便能够独立于 cts/vts 运行它。稍后该套件将包含我的组件的所有测试。问题是 - 是否有一种简单的方法,只需将“套件标签”添加到我的测试中,以便可以自动收集、构建和执行它们,而无需编写一些带有要执行的单独测试列表的 python 文件。
        • 谢谢,我已经在研究这个,但到目前为止我的问题没有答案。
        猜你喜欢
        • 2021-11-13
        • 2012-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-01
        • 1970-01-01
        • 2019-09-02
        • 2018-01-17
        相关资源
        最近更新 更多