每個新的測試模組都必須擁有設定檔,用於引導建構系統 以及模組中繼資料、編譯時間依附元件和封裝操作說明 Android 現在採用 Soong 建構系統,可以更簡便 測試設定
Soong 使用 Blueprint 或 .bp
檔案,這些都類似於 JSON 的簡單宣告式
待建構模組的描述這個格式取代了 Make-based 系統
所用的儲存空間。請參閱 Soong 參考檔案
詳情請參閱持續整合資訊主頁。
如要配合自訂測試,請使用 Android Compatibility Test Suite (CTS),請參照 複雜測試設定 。
範例
下列項目來自這個 Blueprint 設定檔範例: /platform_testing/tests/example/instrumentation/Android.bp
為了方便起見,以下提供快照:
android_test {
name: "HelloWorldTests",
srcs: ["src/**/*.java"],
sdk_version: "current",
static_libs: ["androidx.test.runner"],
certificate: "platform",
test_suites: ["device-tests"],
}
請注意,開頭的 android_test
宣告表示這是測試。
如果加入 android_app
,表示這不是建構
套件。
設定
下列設定可取得說明:
name: "HelloWorldTests",
指定 android_test
模組類型時,必須提供 name
設定
(在區塊的開頭)。這會為您的模組命名
APK 的名稱會與 .apk
後置字串相同,例如:在本例中
產生的測試 APK 名稱為 HelloWorldTests.apk
。此外,這也
為模組定義一個目標名稱,以便您使用 make [options]
<HelloWorldTests>
建構測試模組及其所有依附元件。
static_libs: ["androidx.test.runner"],
static_libs
設定會指示建構系統納入內容
對應至目前模組產生的 APK。也就是說
每個已命名模組都必須產生 .jar
檔案,
用於解析編譯期間的類別路徑參照,以及
整合到產生的 APK 中。
androidx.test.runner
模組是為 AndroidX Test Runner 預先建構的模組
程式庫,內含測試執行器 AndroidJUnitRunner
。
AndroidJUnitRunner
支援 JUnit4 測試架構,並已取代
Android 10 中的 InstrumentationTestRunner
。閱讀完整內容
請參閱「在 Android 上測試應用程式」一文來測試 Android 應用程式。
如要建構新的檢測模組,應一律從
androidx.test.runner
程式庫做為測試執行工具。平台來源樹狀結構
其他實用的測試架構,例如 ub-uiautomator
、
mockito-target
、easymock
和其他地點。
certificate: "platform",
certificate
設定會指示建構系統以相同的方式簽署 APK
做為核心平台使用如果測試使用簽名,就必須這麼做
受保護的權限或 API請注意,這適用於持續使用的平台。
測試,但「不應」用於 CTS 測試模組。請注意,本例
這項憑證設定僅用於說明用途:測試代碼
實際上,並不需要使用測試 APK 簽署
特殊的平台憑證
如果您要為元件編寫檢測作業,而該元件位於
也就是比一般應用程式 APK 封裝的更新碼
然而,其已內建於系統映像檔中
也可能是具有特殊權限的應用程式
您的檢測作業將針對應用程式套件 (詳見下文)
資訊清單)。在這種情況下
makefile 可能包含專屬的 certificate
設定和您的檢測
模組應保留相同的設定。這是因為要指定
接受測試的應用程式上的檢測,必須簽署您的測試 APK 和應用程式 APK
以及使用相同憑證
在其他情況下,您完全不需要這項設定:建構系統
通常會使用預設的內建憑證進行簽署
通常稱為 dev-keys
。
test_suites: ["device-tests"],
test_suites
設定可讓交易人員輕鬆找到檢測結果
聯盟測試控管工具。你可以在這裡新增其他套件 (例如 CTS),以便在
測試會提供給合作夥伴
${ANDROID_PRODUCT_OUT}/testcases/HelloWorldTests/HelloWorldTests.apk
選用設定
下列選用設定可取得說明:
test_config: "path/to/hello_world_test.xml"
test_config
設定會指示測試目標所需的建構系統
專屬設定根據預設,Android.bp
旁邊的 AndroidTest.xml
為
並與這個設定建立關聯
auto_gen_config: true
auto_gen_config
設定會指出是否要建立測試設定
。如果 Android.bp
旁邊沒有 AndroidTest.xml
,
這類屬性不一定要明確設為 true。
require_root: true
require_root
設定會指示建構系統新增 RootTargetPreparer
加入自動產生的測試設定這麼做可保證執行測試是在根目錄中執行
授予其要求的權限。
test_min_api_level: 29
test_min_api_level
設定會指示建構系統新增
將 MinApiLevelModuleController 設為自動產生的測試設定。交易時
聯盟會執行測試設定,如果裝置屬性會略過測試
/ro.product.first_api_level
<test_min_api_level
。