With just one command, set up everything to run Nightwatch tests in under 60 seconds. Our new onboarding client aims to provide a powerful onboarding experience to the developers setting up Nightwatch for the first time or in their existing project. Learn how to set up the config, and automatically install the webdrivers with the required packages.
Running it
It all starts with the command npm init nightwatch
> npm init nightwatch
Need to install the following packages:
create-nightwatch
Ok to proceed? (y)
This is an npm alias for using npx create-nightwatch
. The npx
is a command for executing package binaries without downloading to the local dependency. npm then installs the package in a cache and runs the binary. If you are starting a new project, you can also run npm init nightwatch <directory>
.
The Flow of Choices
The setup is based on a list of questions to accommodate a variety of use cases.
Test Runner
Nightwatch also supports other test runners. You can also pick Mocha or Cucumber as a test runner apart from Nightwatch.
JavaScript / Typescript
Nightwatch supports typescript for test files after v1.6.0. So you can choose to have the test setup in Javascript or Typescript.
===============================
Nightwatch Configuration Wizard
===============================
Just answer a few questions to get started with Nightwatch:
We'll setup everything for you :-)
? What is your Language - Test Runner setup? (Use arrow keys)
❯ JavaScript - Nightwatch Test Runner
JavaScript - Mocha Test Runner
JavaScript - CucumberJS Test Runner
TypeScript - Nightwatch Test Runner
TypeScript - Mocha Test Runner
Local / Remote
You can set up the config and downloads based on if you're going to be running the test locally or on a remote machine or on both.
Where do you want to run your e2e tests? (Use arrow keys)
❯ On my local machine
On a remote machine (cloud)
Both
Browser Selection
You can pick the browsers you'll be testing on, and the config will be created for them. We provide a multi-selection option so you can pick as many browsers you want to test on. You can also use the selenium-server when testing on the local machine.
(Local) Where you'll be testing on? (Press <space> to select, <a> to toggle all, <em> to invert selection, and <enter> to proceed)
❯◉ Firefox
◯ Chrome
◯ Edge
◯ Safari
◯ IE (requires selenium-server)
◯ Local selenium-server
If you are running from a Mac, safaridriver is present by default but must be enabled.
? Enable safaridriver (requires sudo password)? (Use arrow keys)
Yes
❯ No, I'll do that later.
For remote testing, you should provide the host address and port of the remote machine.
? (Remote) What is the host address of your remote machine? (localhost)
? (Remote) What is the port on which your test backend is running on your remote machine? (80)
Other parts
Apart from the fundamental differences in the ways you test, we also keep adding other extra configs you can add in the questionnaire. As of May '22 the list is as follows.
- Directory location for the end-to-end tests
- the
base_url
of your project - Using the
--generate-config
to create only the config and not download any dependencies
Result
If --generate-config
is not provided, the script installs the necessary packages.
Installing the following packages:
- nightwatch
- @nightwatch/selenium-server
- @cucumber/cucumber
For local tests, the script also installs the wedrivers based on your browser selection.
Installing/Updating the following webdrivers:
- geckodriver
- chromedriver
- iedriver
- safaridriver
By default, the configuration file nightwatch.conf.js
is generated and examples at tests/nightwatch-examples
. If the nightwatch.conf.js
is already present then you can choose to overwrite the existing config file or to create a new one.
? Do you want to overwrite the existing config file? No, create a new one!
? What should your new config file be called? ie-windows-test.conf.js
Then you can run the examples with this command.
npx nightwatch ./tests/nightwatch-examples
npm init nightwatch
This blog was orginaly posted in the Nightwatch Blog.