將選項和篩選器傳遞至套件和模組

首先,請務必瞭解選項處理

「套件設定」說明套件結構中的兩個層級:

  • 頂層套件
  • 模組

在非套裝組合 Tradefed 的情況下,您不必考慮這點,因為每個選項都會進行完整叫用。在套件內容中,模組會與套件保持隔離狀態,因此並非所有選項皆可在該層級使用。

將選項傳遞至頂層套件

頂層套件會像標準 Tradefed 設定一樣運作:包含套件執行程式的完整設定會接收所有選項,就像非套件 Tradefed 設定一樣。

將選項傳遞至模組

模組預設不會接收傳遞至指令的任何選項。您必須明確指定這些裝置,才能透過 module-arg 選項接收選項。模組選項的這種隔離方式可讓偵錯作業更輕鬆。

例子:

cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>

cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true

這個語法可確保指定的模組會收到指定的選項。

您可以透過其他方式將選項傳遞至 test-arg 等模組 可讓您根據執行器,將選項傳遞至每個模組的測試執行器 類型或類別

例子:

cts-tradefed run cts --test-arg <test-class>:<option-name>:<option-value>

cts-tradefed run cts --test-arg com.android.tradefed.testtype.JarHosttest:collect-tests-only:true

這個語法不會指定特定模組,而是所有測試執行器 指定的類別test-arg 只會將 IRemoteTest 的實作項目視為選項的潛在接收端。

將選項傳遞至 java_test_host 中的 Java 測試類別

如果您將 @Option 新增至 Java 測試類別, java_test_host 建構目標,您需要使用下列內容來插入 選項:

cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>

此結構定義中的 set-option 是從測試控管工具中的 HostTest 執行器選項 ,納入 Java 類別以進行執行。

如果選項的 JAR 檔案目標包含多個測試類別,則預設情況下,這些類別都必須指定 @option,或使用以下語法指定單一類別:

cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>

將篩選器傳遞至套件

為篩選套件中的部分測試,我們會使用 --include-filter--exclude-filter 分別強制納入或排除特定測試 或模組。排除條件有優先順序。

使用格式如下:[abi] <module-name> [test name]

例如:

--include-filter CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes