What is Travis CI? It’s importance in Android Testing.
Travis CI is continuous integration service which is hosted online and makes it easy for developers to automate any kinds of test on their Github projects. In an open source project, there are many developers from around the world working together and the repository experiences many new commits in a single day. Their might be a chance that while making the changes, they have broken something in the application. In the first blog, I discussed how to add Espresso UI tests. After this the question arises is how to use these tests to check the stability at each push or a pull request.
How I ran Espresso Tests in Phimpme using Travis?
After adding the Espresso Tests in the application, we need to configure .travis.yml file to run the tests on each push in the repository. This can be achieved by following the steps below:
In the .travis.yml file of the repository, check whether the existing configuration exists to check for gradle build of the application. Create one in case it is not their and add the configurations to do a build check. You can take help from the official site of Travis or from the .travis.yml file in the Phimpme repository.
Now in the before script part of the file add the following codes which will start the emulator in the Travis to run the Espresso Tests.
– echo no | android create avd —force –n test –t android–19 – –abi armeabi–v7a
– emulator –avd test –no–audio –no–window &
– sleep 300
– adb shell input keyevent 82 &
The sleep 300 is used to wait for a specified time so that the emulator starts perfectly before running the test.
In the script part of the file, run the Espresso test written in the application by adding the following line of codes.
After adding these, make a test commit on your repository. Login to your Travis account to check the status of the test.
For the complete code of how to implement Travis test, refer to this Pull request in the Phimpme Android repository. In this Pull request, I did not make use of the sleep 300, due to which sometimes the test was failing without any broken UI. Hence, make sure to add this line of script for better results.