多重處理程序 Espresso

隨著應用程式業務拓展,建議您放置一些應用程式元件 在應用程式主要程序以外的程序中。如要在這些元件中測試應用程式元件 非預設處理程序,可以使用 Multiprocess Espresso 的功能。 這項工具適用於 Android 8.0 (API 級別 26) 以上版本,可讓您 順暢測試跨應用程式程序的 UI 互動 邊界,同時維持 Espresso 的同步處理保證。

使用 Multiprocess Espresso 時,請保留以下版本管理和範圍 注意事項:

  • 您的應用程式必須指定 Android 8.0 (API 級別 26) 以上版本。
  • 這項工具只能測試您在程序中加入的應用程式元件 應用程式的套件。但無法測試外部程序。

使用工具

如要使用 Multiprocess Espresso 在應用程式中測試程序,請新增參照 新增至應用程式 build.gradle 檔案中的 espresso-remote 構件:

app/build.gradle

Groovy

dependencies {
    ...
    androidTestImplementation 'androidx.test.espresso:espresso-remote:3.6.1'
}

Kotlin

dependencies {
    ...
    androidTestImplementation('androidx.test.espresso:espresso-remote:3.6.1')
}

您還需要將下列內容加入應用程式的 androidTest 資訊清單:

  • 定義程序的 <instrumentation> 元素。
  • <meta-data> 元素,指出您要使用 Multiprocess Espresso。

以下程式碼片段說明如何新增這些元素:

src/androidTest/AndroidManifest.xml

<manifest ... package="androidx.test.mytestapp.tests">
  <uses-sdk android:targetSdkVersion="27" android:minSdkVersion="14" />
  <instrumentation
    android:name="androidx.test.runner.AndroidJUnitRunner"
    android:targetPackage="androidx.test.mytestapp"
    android:targetProcesses="*">
    <meta-data
      android:name="remoteMethod"
      android:value="androidx.test.espresso.remote.EspressoRemote#remoteInit" />
  </instrumentation>
</manifest>

上方程式碼片段會指示您要讓其測試的 Android 架構 應用程式套件中的每個程序。如果您只想測試一小部分的 應用程式的處理程序,您可以指定在 請改為使用 targetProcesses 元素:

<instrumentation
    ...
    android:targetProcesses=
            "androidx.test.mytestapp:myFirstAppProcessToTest,
             androidx.test.mytestapp:mySecondAppProcessToTest" ... />

瞭解工具的架構

測試應用程式並啟動預設程序時,您可以執行 UI 互動 (例如按下按鈕) 會在次要執行個體中啟動活動 上傳資料集之後,您可以運用 AutoML 自動完成部分資料準備工作接著,系統會完成下列步驟以啟用跨程序 進行測試:

  1. Android 架構會建立並啟動新程序,遵循應用程式的 導覽架構每項 Instrumentation 程序 包括新的 AndroidJUnitRunner。 在這個階段,這兩個檢測程序無法與 其他。
  2. 每項 AndroidJUnitRunner敬上 執行個體將 Espresso 註冊為其測試架構。
  3. 這裡的兩個執行個體 AndroidJUnitRunner敬上 執行握手來建立彼此之間的連結。相同 時間、每個 AndroidJUnitRunner敬上 執行個體連結所有已註冊的用戶端 (例如 Espresso) 與其對應的 與其他程序中的對應項目,讓這些客戶 與其他通訊管道
  4. 每個 AndroidJUnitRunner 執行個體會持續尋找新增的檢測執行個體,並進行測試 並視需求建立其他通訊管道。

圖 1 說明瞭這項程序的結果:

圖 1. 建立多個 採用 Multiprocess Espresso 的檢測程序

其他資源

如要進一步瞭解這個主題,請參閱下列資源。