[Testing] Which framework should I use to augment BDD - Calabash, Specflow or XamarinUiTest?


We are looking to introduce BDD style acceptance tests in our project and I am wondering which framework is best suited to use with our Xamarin ios/android app. I understand Xamarin.UITest is the preferred approach however we would like to run acceptance tests locally as part of our CI build process before publishing to TestCloud for scheduled test runs.

I guess the decision is really between Calabash which is still officially supported and maintained by Xamarin or SpecFlow which is not but can be utilised via add-ins.

Any suggestions welcome.



  • RisheetThankiRisheetThanki USMember

    Bump anyone?

  • liohauliohau FRMember
    edited June 2016

    I started with calabash (ruby) before it was related to xamarin, and now I am rebuilding all our tools and C.I. using Specflow + Xamarin.UITest instead.
    The only reason for that is that all developers/testers in my company knows c# whereas nobody knows ruby...
    So I would say that it only depends on your environment (are you using TFS for C.I. for instance?).

  • XamarinersXamariners SGBeta ✭✭

    As an incurable cucumberist, We are using both TestUI and Unit Tests on console runner, both with a specflow wrapper, so we can use the same specflow definitions to run both Unit and UI tests; The steps implementations are obviously different, although most TestUI specflow steps are generic.

    I published a nuget library, 'SpecFlow.Xamarin.Forms', to facilitate the unit test part, ie testing the ViewModel / Commands / internal Navigation (well, implementing from the scenario and up to the ViewModel).

    You can find detailled step by steps instructions here

    I will also release 'SpecFlow.Xamarin.Forms.UITest' in the very near future, with a set of helpers to allow easy sharing of 1 definition for both Unit Tests and UI Tests

Sign In or Register to comment.