我将为我们的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
是有意义的。这只是一个愚蠢的问题,我完全错了吗?由于这些测试对于我们的兼容性至关重要,因此我想确保以正确的方式运行它们。
答案 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 /目录,以获取命名约定和工作的基本概念。