I have two different Android devices plugged into the same machine. What I would like to do is to target each device and execute a test on it separately.
Unfortunately,
In the new Android Studio Artic Fox (it would have been Android Studio 4.3 in the previous numering system and at this moment is still in beta) you can run the tests in multiple machines at the same time.
https://developer.android.com/studio/preview/features?utm_source=android-studio-2020-3-1&utm_medium=studio-assistant-preview#instrumentation-testing
To take advantage of this feature:
- Choose Select Multiple Devices in the target device dropdown menu (in the top-center of the IDE).
- Select the target devices and click OK.
- Run your tests.
To view your test results in the Run panel, go to
View > Tool Windows > Run
.
The below command works for me:
calabash-android run your_app.apk ADB_DEVICE_ARG=<your_device_id>
Hope that help
You need to set ADB_DEVICE_ARG
environment variable to the serial number of your device as returned by adb devices
.
So to add on to Robert's answer:
$ adb devices
List of devices attached
emulator-5554 device
emulator-5556 device
emulator-5558 device
$ ADB_DEVICE_ARG=emulator-5554;calabash-android run yourapk.apk
If you need to run the same Calabash test at the same time on multiple devices, better run them from separate root folders, or specify the result in different folders so that the results don't get mixed up.
You can specify the targeted device on the adb command with -s
1) Get the device serialNumber by doing
$ adb devices
List of devices attached
emulator-5554 device
emulator-5556 device
emulator-5558 device
2) Pass in the serialNumber into the adb command with -s argument
$ adb -s <serialNumber> <command>
For example
$ adb -s emulator-5556 install helloWorld.apk