calabash / calabash-ios-server

An embedded HTTP server for performing queries and test automation
Other
87 stars 82 forks source link

Is calabash-ios-server still supported by Microsoft? Is it the same as Xamarin Test Cloud Agent? #459

Closed IevgenRagulin closed 4 years ago

IevgenRagulin commented 4 years ago

According to https://github.com/calabash/calabash-ios , calabash-ios and calabash-android isn't supported by Microsoft any more, is it also true for calabash-ios-server?

https://www.nuget.org/packages/Xamarin.TestCloud.Agent/ references this github repo, are they the same thing?

As far as I know Xamarin UI is built on top of calabash. Microsoft claims to support Xamarin UI. How can Microsoft support Xamarin UITest if it doesn't support calabash any more?

We are using Xamarin UITest to test our React Native apps, can we reliably expect this setup to work in the future?

jmoody commented 4 years ago

Calabash iOS Server and Test Cloud Agent are the same.

Microsoft has deprecated support for the Calabash iOS and Android cucumber ruby clients.

Xamarin.UITest has not been deprecated. DeviceAgent, iOSDeviceManager, Calabash iOS Server, and Calabash Android Test Server are all required by Xamarin.UITest, and as such they are still maintained by Microsoft.

jmoody commented 4 years ago

I appreciate the question, but I don't appreciate that you cross-posted on Stack Overflow.

Please don't do that again.

https://stackoverflow.com/questions/62222280/does-microsoft-still-continue-to-support-xamarin-uitest-calabash-ios-server-ca/62296455#62296455

IevgenRagulin commented 4 years ago

Sorry for crossposting, I never realized this was an issue.

Thank you. The docs here: https://docs.microsoft.com/en-us/appcenter/test-cloud/uitest/preparing-for-upload-ios indicate that "linking Calabash" is required (the link in the docs goes to unsupported calabash-ios library). Do you know why it's necessary to do so to run the apps inside of Test Cloud? Do I need to do the same to run the tests in some other cloud?

I've also posted this question on Stackoverflow in a comment to your answer yesterday. Posting it hear too since I didn't get any response there.

jmoody commented 4 years ago

Do you know why it's necessary to do so to run the apps inside of Test Cloud?

Xamarin.UITest is a client for Calabash Android and Calabash iOS (aka LPServer, Test Cloud Agent) test servers. Xamarin.UITest will not work without these servers.

Do I need to do the same to run the tests in some other cloud?

If you are using Xamarin.UITest, then yes, absolutely.

Oddj0b commented 4 years ago

The docs here: https://docs.microsoft.com/en-us/appcenter/test-cloud/uitest/preparing-for-upload-ios indicate that "linking Calabash" is required (the link in the docs goes to unsupported calabash-ios library). Do you know why it's necessary to do so to run the apps inside of Test Cloud? Do I need to do the same to run the tests in some other cloud?

Xamarin.UITest is using the calabash SDK to communicate with the app so that it can be automated. Xamarin.UITest has always used Calabash under the hood.

IevgenRagulin commented 4 years ago

Thank you for your responses!

The docs say:

Non-Xamarin.iOS apps are also supported by Xamarin.UITest, but instead of the Xamarin Test Cloud Agent require linking Calabash.

When I click the link, I get redirected to https://github.com/calabash/calabash-ios which is unsupported by Microsoft.

So, back to the original question - how can Microsoft claim to support Xamarin.UITest if it doesn't support calabash-ios which is required by Xamarin.UITest?

jmoody commented 4 years ago

Xamarin.UITest requires the Calabash iOS Server. Xamarin.UITest does not require Calabash iOS (which is a ruby gem and itself a client for the Calabash iOS Server).

Microsoft is committed to supporting the maintenance and the development of the Xamarin.UITest stack which includes Calabash iOS and Android Servers, DeviceAgent.iOS, and iOSDeviceManager. If you look at the commit history, you will see that this is the case.

I don't know why the documentation links to the calabash-ios gem home page.

IevgenRagulin commented 4 years ago

I see, I think this makes sense now, thank you. "linking Calabash" actually links calabash-ios-server into the app. I was under the impression it was required to link calabash-ios into the app because the steps for linking are located in the https://github.com/calabash/calabash-ios repo