In this article, you will learn how to create and run Nightwatch tests on Jenkins

Overview

Jenkins is a long-term industry standard for continuous integration. Jenkins can be used to execute tests on the same instances or on cloud-service providers such as BrowserStack. You can also review the results post the execution of the tests.

Prerequisites

  1. Installed Jenkins instance
  2. Nightwatch tests uploaded on Git

Run on Jenkins instance

Steps:

1. Choose "Freestyle project" and name the project according to your project

Jenkins project setup

2. Setup source code management to fetch tests from the git repository to fetch the latest test version.

Make sure the git branch is mentioned correctly. You can find the source code management settings under "Configure->General".

Jenkins GIT repository setup


3. Setup Node plugin by going to dashboard -> Manage Jenkins -> Plugin Manager, searching for NodeJS Plugin and installing it.

Jenkins executes the pipeline in a blank shell instance. In order to use npm commands, the NodeJS plugin would have to be installed.

Jenkins NodeJS Plugin


4. Setup the pipeline to use the NodeJS plugin by select the Node JS option under Build Environment.

Jenkins NodeJS Plugin


5. Add an Execute shell build step along with following commands.

npm install
npm test

Jenkins Nightwatch Execute Tests

Your build is ready to be triggered. When you build this job, you will notice that your tests are running on the Jenkins instance.

Run on Cloud Service Providers from Jenkins

Run on BrowserStack

In order to run your tests on BrowserStack from Jenkins, setup the environment variables by going to "Manage Jenkins-> Configure System -> Environment Variables"

Setup the following 2 environment variables


BROWSERSTACK_USERNAME
BROWSERSTACK_ACCESS_KEY

Jenkins BrowserStack

The setup is done. You can execute the tests by updating the test exection shell command in the build steps

npm test -- --env browserstack

Once you build, the tests will be executed on BrowserStack.

View JUnit XML reports

Nightwatch publishes XML reports after test-run the same can be used in Jenkins to publish test reports.

1. Make sure Junit Jenkins Plugin is installed

2. Add a post-build action to publish the XML report. Nightwatch by default uses the tests_output folder to write reports.

Jenkins JUnit Report Setup

3. Run your tests to see the JUnit report in Jenkins.

Jenkins JUnit Report

View HTML reports

Nightwatch also publishes HTML reports which can be published to Jenkins

1. Make sure you have installed the HTML Jenkins plugin.

2. Nightwatch by default writes HTML report to tests_output/nightwatch-html-report/ that will be used by Jenkins to publish the report.

Jenkins HTML reporter setup

3. Run your tests to see the HTML report under Status->HTML Report.

Jenkins HTML report