Breaking the Limitations of Calabash Android
Article Summary
Rajdeep Varma from Badoo cracked a problem that's plagued mobile test automation for years: Calabash could only test what's inside your app, while Appium couldn't use backdoor methods. His solution? Merge the best of both worlds.
Badoo's QA team relied on Calabash for Android test automation due to its speed and stability, but hit a wall when trying to test notifications and system-level interactions. This article details how they integrated UIAutomator 2.0 into Calabash-Android-server to break through its fundamental limitation of only accessing application UI.
Key Takeaways
- Calabash uses Robotium and Instrumentation, limiting it to app UI only
- UIAutomator 2.0 now runs within Instrumentation, enabling device-wide control
- Solution enables notification testing, widget testing, and third-party app interactions
- Implementation requires patching both server and client with '-w' flag support
- Ready-to-use Ruby Gem available for immediate implementation
By adding UIAutomator 2.0 support to Calabash-Android-server, Badoo maintained their stable test framework while gaining the ability to test notifications, widgets, and any system-level Android interactions.