As you may probably know, Microsoft has announced the discontinuation of Calabash development. Let’s figure out what it means for the community.
Bonustrack: The presentation of a new tool for managing iOS Calabash tests.
Power of Calabash
First of all, let’s try to understand why the community should care at all and why Calabash is not just “another project”, that can slowly die without any support and new features.
I think that everyone, who used Calabash, will agree that the framework is very powerful and there are not much alternatives that can compete with it for 100%. Previously I did an evaluation of different test automation frameworks for iOS. Calabash took the 1st place, as it had more advantages for the setup we are using in the company. Surprisingly, even after almost a year the results are still valid (you can take a look at them). According to the research, the closest framework to Calabash is Appium. But Appium uses Selenium WebDriver, that was not specifically designed for mobile UI Testing. Other key factors, that distinguish Calabash from Appium are:
- Calabash can access and invoke methods in your app using so-called
backdoor. This powerful feature gives more possibilities to your automation and therefore makes Calabash even more attractive. By using
backdooryour can significantly improve stability and increase the testing speed. For example, imagine advantages that can give directly called login or logout.
- Calabash provides access to native elements via concrete classes, the same way as they are defined in the app, not just by accessibility classes. The last ones are not quite useful when your app uses a lot of custom classes and elements.
- There is no necessity in defining accessibility attributes, in order to get access to the elements.
- Easy navigation through view hierarchy using Calabash query language.
Collaboration and OSS
Having in mind all the advantages of Calabash, I believe that community shouldn’t let it vanish. There are a lot of people in the companies that use Calabash for the automation and all of them are engineers that can contribute to open source. Yes, Calabash is not 100% open source yet, but as I know, there is a plan to make it available soon. And when it is open sourced, everything will be in hands of the community.
One collaboration and OSS example will be the Calabash Launcher. Well, what is Calabash Launcher? Calabash Launcher is a tool that provides graphical interface for:
- Running tests with different parameters that are configurable in several clicks
- Getting elements query strings by clicking on these elements in a graphical representation of the application under test
Story behind the Calabash Launcher
At XING, the company I work for, we use Calabash in 10 development teams. As a responsible person for automation, I was getting a lot of questions about Calabash setup and workflow on a daily basis. The most frequently asked questions were:
- Configuration of the test run. Especially, how to change device, language, build, etc.
- How to find easily elements in the app.
So, I started to think on how to make my and the life of other engineers, working with Calabash, easier. After some time I’ve come up with an idea to create a nice graphical interface for handling all the cases I was solving every day. That’s how the first version of Calabash Launcher has appeared. After some iterations and involving the rest of the team, we’ve got something that notably decreased amount of time people spent on writing and running their tests.
Calabash Launcher is going open source
Open sourcing is not just about consuming, it is also about contributing. At XING we have developed a nice tool that can be used by many other people. And today we are going open source with this tool! Interested? You can check the repo or download the latest binary and try it yourself.