Set up Running Automated UI tests on your First day at work: Part 5

Setting up a Continuous Testing server to run your tests

What is unique about CT servers?

CT servers provide features that are essential for managing executions of functional tests. CI servers (or no servers at all) lack these features and can lead to frustration down the road when your test suite grows in size. Therefore, I highly recommend using a CT server and setting it up early in your project.

  • Auto retry failed test execution (once)
    Due to many variables (e.g. network, loading time), functional UI tests are flakey by nature. As a result, we do not want to restart the execution if a test fails when it shouldn’t. Instead, we want to rerun that specific test! This feature is a huge time saver.
  • Manual retry
    Sometimes, auto retry may not be enough. For example, an external service is down. In such cases, manual retry helps to reduce false alarms.
  • Intelligent ordering
    This feature changes the run order based on a variety of factors. This can ensure quick feedback as new tests, recently failed, and commonly failed tests are run first. Some CT servers even allow you to edit the priority of tests manually so you can push a particular test to run earlier.

Installing BuildWise

BuildWise is a free and open-source CT server. It is quite easy to install, around under 10 minutes. For instructions to install BuildWise, please follow the guide in the link below up to the Create a Build Projectsection.

BuildWise — How does it work?

All CI/CT servers (including BuildWise) at a high level perform the following core tasks:

  • Pull the latest commit from the source
  • Execute your tests
  • Show test results and execution history
  • Reporting

Setup a Sample Project in BuildWise

First, let’s clone a sample project. Make sure you have Git installed.

git clone https://github.com/testwisely/buildwise-samples.git
C:\Users\CIO\Documents\Courtney>git clone https://github.com/testwisely/buildwise-samples.git
Cloning into 'buildwise-samples'...
remote: Enumerating objects: 223, done.
remote: Counting objects: 100% (223/223), done.
remote: Compressing objects: 100% (153/153), done.
remote: Total 223 (delta 75), reused 201 (delta 56), pack-reused 0R
/s
Receiving objects: 100% (223/223), 3.66 MiB | 5.75 MiB/s, done.
Resolving deltas: 100% (75/75), done.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store