Courtesy: GitHub

Multiprocess Espresso Sample

To test app components in a non-default processes, you can use the functionality of Multiprocess Espresso. This tool, available on Android O (API level 26) and higher, allows you to seamlessly test your app's UI interactions that cross your app's process boundaries while maintaining Espresso's synchronization guarantees.

  1. Download the project code, preferably using git clone.
  2. In Android Studio, select File | Open... and point to the ./build.gradle file.
  3. Check out the relevant code:
    • The application under test is located in src/main/java
    • Tests are in src/androidTest/java
  4. Create the test configuration:
    • Open Run menu | Edit Configurations
    • Add a new Android Tests configuration
    • Choose a module
  5. Connect a device or start an emulator
    • Turn animations off. (On your device, under Settings->Developer options disable the following 3 settings: "Window animation scale", "Transition animation scale" and "Animator duration scale")
  6. Run the newly created configuration

The application will be started on the device/emulator and a series of actions will be performed automatically.

If you are using Android Studio, the Run window will show the test results.

compileSdkVersion 26

applicationId "com.example.android.testing.espresso.multiprocesssample"

minSdkVersion 26

targetSdkVersion 26

versionCode 1

versionName "1.0"

testCompile 'junit:junit:4.12'

package com.example.android.testing.espresso.multiprocesssample.test

package com.example.android.testing.espresso.multiprocesssample

DefaultProcessActivity

PrivateProcessActivity

DefaultProcessActivity

Activity running in the default process which matches the application package

PrivateProcessActivity

Activity running in a private process which is manually defined in the AndroidManifest.xml using the android:process attribute.

From D.A.C: "If the name assigned to this attribute begins with a colon (':'), a new process, private to the application, is created when it's needed and the activity runs in that process."