Share this post

  

Get started with Xamarin Test Cloud

Let’s take a look to Xamarin’s Test Cloud and examine the basics for implementing automated UI Acceptance Testing for mobile application and explore the main features of this product.

Automating UI tests

At a glance, Xamarin Cloud Test allows you to automate UI Acceptance Testing by just following these steps:

  1. Setup the UI test-project with UITest in C# or Calabash (Ruby).
  2. Arrange, Act and Assert your tests.
  3. Submit and run your tests in the cloud.

Xamarin Test Cloud

1. Setup the UI test-project with UITest in C#

If you already familiar with Unit Testing in .Net, you can easily start your UI tests for your Xamarin Forms and scaffold the project by just indicating the name and location of your test project.

Now, UITest for C# is fully based on NUnit so if you are already familiar with it will be as easily as your normal Unit/Acceptance tests for other projects.

Here is how to add the project step by step with more details.

Target the platforms you need.

By having the project in place, you can just just add the reference and target both Android and iOS from a single cross-platform test suite.

You can take a sample from our repository in GitHub, where you can locate the prototyping app and the code for the UI tests as well.

Making our UITest cross-platform.

Since we are developing a cross-platform app, we can also make our tests to go cross-platform by just refactoring the code to make it run for other platforms as well. So let’s make a class that will abstract the application instance:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace Tests
{
using NUnit.Framework;
using Xamarin.UITest;

public class CrossPlatformTests
{
protected IApp App { get; set; }

[SetUp]
public virtual void SetUp()
{
Assert.Ignore("This class requires a platform-specific bootstrapper to override the `SetUp` method");
}
}
}

By abstracting the application with the IApp member, it will allow you to have shared test suites for both Android and iOS.

2. Arrange, Act and Assert your tests

So by extending the previous class we are able to define the body of test to be run in every platform. Let’s add some basic tests to make sure our app is loaded the first time.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace Tests
{
using NUnit.Framework;
using System;
using System.IO;
using System.Reflection;
using Xamarin.UITest;
using Xamarin.UITest.Configuration;

[TestFixture()]
public class AndroidTest : CrossPlatformTests
{
[SetUp]
public override void SetUp()
{
App = ConfigureApp.Android.StartApp();

App.Screenshot("Given the app is loaded");
}

[Test]
public void AppLaunches()
{
App.Screenshot("First screen.");
}
}
}

Then our new class can both contain both shared test-cases and add any platform-specific tests if necessary.

3. Submit your tests to the cloud.

Once you have the project in place, you can just start running your test cases right the way.

But before running the test suite in Xamarin Cloud, you need to make sure you’re deploying it in Release mode in Visual/Xamarin Studio to make it work.

Targeting devices to run.

After uploading, you will be prompted to select the number of devices to be run against your test suite that best fill your needs. After run, you can inspect the screenshots that we previously indicated as part of the test cases.

Here are the test results with the snapshots taken in every device:

Here is how you can submit your tests step by step with more details.

Inspecting the results.

There you go! Your tests will start running and you will immediately receive the results as they execute. Additionally, you will receive an email after the tests are done.

Here are the results for the sample app test run with the screenshots taken during the test executions.

And that’s it! Now we can focus on implementing more tests depending on application’s needs.

In further posts we will additional features of Xamarin Test Clould including REPL and deeper assertion cases.

Additional Xamarin resources.

Intro to Xamarin Test cloud
Xamarin.UITest C# Cheat Sheet
Code examples
Working with REPL

Share this post

  

Software Engineer at Microsoft | Former MVP, Certified developer
@stvansolano
More about me

 Browse by tag

 Xamarin

 

 DotNet

 

 Spanish/Español

 

 Productividad

 

 Open Source

 

 Microsoft

 

 AppCenter

 

 DevOps

 

 Conferences

 

 Google

 

 Docker

 

 Kubernetes

 

 XamarinDiplomado

 

 ASP.NET

 

 Web Apps

 

 Yeoman

 

 HTML5

 

 REST

 

 Web API

 

 Meetup

 

 Freelance

 

 Android

 

 Mobile

 

 CodeMentor

 

 MVVM

 

 iOS

 

 OSS

 

 .NET

 

 Github

 

 FSharp

 

 MVP

 

 Comunidad

 

 Azure

 

 AI

 

 Exam

 

 Certification

 

 Rifa

 

 Markdown

 

 GitHub

 

 Backend

 

 Online

 

 WebAPI

 

 MacOS

 

 Asp.Net Core

 

 .Net

 

 Taller

 

 Charla

 

 Git

 

 WordPress

 

 Spanish/English

 

 UX / UI

 

 Realm

 

 Bootcamp

 

 Productivity

 

 VisualStudio

 

 Contenedores

 

 DevDays

 

 Maui

 

 Workshop

 

 XamarinForms

 

 Cloud

 

 NetCore

 

 Serverless

 

 SignalR

 

 CosmosDB

 

 MachineLearning

 

 Python

 

 MVPSummit

 

 YouTube

 

 VS4Mac

 

 containers

 

 Linux

 

 Windows

 

 Career

 

 OpenSource

 

 TestCloud