运行CTS和VTS测试计划的正确命令是什么?

时间:2018-09-26 14:19:35

标签: android cts android-cts android-vts android-tradefederation

我将为我们的AOSP设置VTS和CTS测试。这两个测试套件都使用行业联合会测试框架。让我感到困惑的是如何运行不同的测试计划。

根据VTS的文档(https://source.android.com/compatibility/vts/systems),必须决定要运行哪个测试计划。然后使用run命令对其进行测试。

例如如果要运行默认的VTS测试计划,请使用它。

me@computer> vts-tradefed
vts-tf > run vts

这将对连接的设备启动许多测试。

接下来,在启动CTS测试时,我希望调用相应的函数,或者看起来是这样。按照以下说明,我希望使用称为“ cts”的测试计划运行CTS测试。

me@computer> cts-tradefed
cts-tf > run cts

这似乎工作正常,并且测试似乎开始了。但是随后,我读了CTS(https://source.android.com/compatibility/cts/run)手册,说cts应该以{{1​​}}的形式执行。他们给出了下面的示例run cts --plan <test-plan>,以运行默认的cts计划。

  

通过添加以下内容来启动默认的测试计划(包含所有测试包):run cts --plan CTS。这将启动所有必需的CTS测试   出于兼容性。

     

对于CTS v1(Android 6.0及更低版本),请输入列表计划以查看存储库中的测试计划列表,或输入列表包以查看列表   存储库中的测试包数量。           对于CTS v2(Android 7.0及更高版本),请输入列表模块以查看测试模块的列表。

     

或者,使用以下命令从命令行运行您选择的CTS计划:cts-tradefed run cts --plan

在测试时,它似乎也可以正常工作。两个想法让我感到奇怪。首先,示例中的测试计划以大写字母表示,即“ CTS”而不是“ cts”。其次,运行命令在这里似乎完全不同。对我而言,run cts --plan CTS命令是内置的Tradefed命令,并且其参数应为测试计划的名称是有意义的。交易本身也证实了这一点。

VTS帮助:

run

CTS帮助:

vts-tf > help run
r(?:un)? help:
    command <config> [options]        Run the specified command
    <config> [options]                Shortcut for the above: run specified command
    cmdfile <cmdfile.txt>             Run the specified commandfile
    commandAndExit <config> [options] Run the specified command, and run 'exit -c' immediately afterward
    cmdfileAndExit <cmdfile.txt>      Run the specified commandfile, and run 'exit -c' immediately afterward

    ----- Vendor Test Suite specific options ----- 
    <plan> --module/-m <module>       Run a test module
    <plan> --module/-m <module> --test/-t <test_name>    Run a specific test from the module. Test name can be <package>.<class>, <package>.<class>#<method> or <native_binary_name>
        Available Options:
            --serial/-s <device_id>: The device to run the test on
            --abi/-a <abi>         : The ABI to run the test against
            --logcat-on-failure    : Capture logcat when a test fails
            --bugreport-on-failure : Capture a bugreport when a test fails
            --screenshot-on-failure: Capture a screenshot when a test fails
            --shard-count <shards>: Shards a run into the given number of independent chunks, to run on multiple devices in parallel.
     ----- In order to retry a previous run -----
    retry --retry <session id to retry> [--retry-type <FAILED | NOT_EXECUTED>]
        Without --retry-type, retry will run both FAIL and NOT_EXECUTED tests

解释几乎相同。因此,实际上分别使用cts-tf > help run r(?:un)? help: command <config> [options] Run the specified command <config> [options] Shortcut for the above: run specified command cmdfile <cmdfile.txt> Run the specified commandfile commandAndExit <config> [options] Run the specified command, and run 'exit -c' immediately afterward cmdfileAndExit <cmdfile.txt> Run the specified commandfile, and run 'exit -c' immediately afterward ----- Compatibility Test Suite specific options ----- <plan> --module/-m <module> Run a test module <plan> --module/-m <module> --test/-t <test_name> Run a specific test from the module. Test name can be <package>.<class>, <package>.<class>#<method> or <native_binary_name> Available Options: --serial/-s <device_id>: The device to run the test on --abi/-a <abi> : The ABI to run the test against --logcat-on-failure : Capture logcat when a test fails --bugreport-on-failure : Capture a bugreport when a test fails --screenshot-on-failure: Capture a screenshot when a test fails --shard-count <shards>: Shards a run into the given number of independent chunks, to run on multiple devices in parallel. ----- In order to retry a previous run ----- retry --retry <session id to retry> [--retry-type <FAILED | NOT_EXECUTED>] Without --retry-type, retry will run both FAIL and NOT_EXECUTED tests run cts是有意义的。这只是一个愚蠢的问题,我完全错了吗?由于这些测试对于我们的兼容性至关重要,因此我想确保以正确的方式运行它们。

1 个答案:

答案 0 :(得分:0)

要运行计划(cts或vts),可以根据您的选择性需求使用不同的命令:

要运行完整的vts或cts测试,run <plan>,例如运行cts /运行vts

要在计划中运行特定模块: run <plan> -m <module>,例如运行cts -m CtsMyDisplayTestCases (模块名称应与Android中的LOCAL_PACAKGE_NAME中提到的名称相同.mk)

要运行包含计划中特定模块的多个测试的特定测试类: run <plan> -m <module> -t <packageName.className>,例如运行cts -m CtsMyDisplayTestCases -t android.display.cts.ScreenTests < / em>(此命令将运行测试类“ ScreenTests”中存在的所有测试,程序包名称与AndroidManifest.xml中的固定名称相同)

要在计划中特定模块的测试类中运行特定测试用例: run <plan> -m <module> -t <packageName.className#testName>,例如运行cts -m CtsMyDisplayTestCases -t android.display.cts.ScreenTests #testDisplayName (此命令将运行测试类'ScreenTests'中存在的testDisplayName测试用例,程序包名称与AndroidManifest.xml中的固定名称相同)

您还可以检查AOSP / cts /目录,以获取命名约定和工作的基本概念。