Migrating Solutions for Test Cloud Integration Overview Starting with Xamarin Studio 5.9 and Xamarin for Visual Studio 3.11, Xamarin enhanced support for Test Cloud in each IDE: Updated Templates – New templates for mobile solutions that include a UITest project. Run Test in Test Cloud – It is now possible to run UITests in Test Cloud using Xamarin Studio or Visual Studio. This guide will cover how to upgrade older projects that were created before the Test Cloud integration features were added to Xamarin Studio or Xamarin for Visual Studio. The general process for migrating older UITest projects is as follows: 1. Upgrade to Xamarin Studio 5.9 or Xamarin for Visual Studio 3.11 2. Update the UITest Nuget package – IDE integration is provided in version 0.7.2 or higher of the NuGet package. 3. Point the UITest project to the application projects – In order for the IDE to run the UITests for you, it needs to know about the mobile projects in the solution file. How to do this is covered in the following section. 4. Remove any explict UITest calls that load the APK / IPA – (optional) Your old tests may have code with the location of the APK or IPA hard coded. Once UITest project points to the test project, the IDE will set the path to the application bundle for you. Requirements If you have created your solution using Xamarin Studio 5.9 or Xamarin for Visual Studio 3.11 or higher, your solution automatically has a UITest project that is configured to take advantage of running tests in the IDE. Pointing the UITest Project to the Mobile Projects The most significant change is to update the UITest project to point to the mobile projects. This will allow UITest to automatically determine the path to the application bundle for you, eliminating some of the boilerplate initialization code present in UITests. 1. Open the Unit Tests pad, View > Pads > Unit Tests. 2. Expand the Tree View and expose the Test Apps node: 3. Right click on Test Apps, and select Add App Project: 4. From the dialog that appears, point the UITest project to the mobile applications that Xamarin Studio should run tests for: To upgrade your UITest project in Visual Studio, select the UITest project and select Project > Add References.... From the Reference Manager dialog that appears, select the mobile projects: Configuring IApp The Submitting UITests to Xamarin Test Cloud and Testing on Devices both describe how the IDE will execute tests on the appropriate target. It is no longer necessary to specify the path to the APK or APP/IPA. This means that existing calls to ConfigureApp can be simplified to one of the following: ConfigureApp.Android.StartApp() ConfigureApp.iOS.StartApp() If you have a solution that targets both Xamarin.iOS and Xamarin.Android, the following helper class can be used to initialize an IApp instance that is appropriate for the platform being tested: public class AppInitializer { public static IApp StartApp(Platform platform) { if(platform == Platform.Android) { return ConfigureApp.Android.StartApp(); } return ConfigureApp.iOS.StartApp(); } } Then, update each test class to specify the platform as a part of the TestFixture attribute: [TestFixture(Platform.Android)] [TestFixture(Platform.iOS)] public class Tests { IApp app; Platform platform; public Tests(Platform platform) { this.platform = platform; } [SetUp] public void BeforeEachTest() { app = AppInitializer.StartApp(platform); } [Test] public void ClickingButtonTwiceShouldChangeItsLabel() { // Test code omitted } } Summary This guide discussed how to migrate old UITest projects to take advantage of the IDE integration provided by Xamarin Studio 5.9 and newer. This guide discussed how to migrate old UITest projects to take advantage of the IDE integration provided by Visual Studio 3.11 and newer.
© Copyright 2024