We're delighted to announce that the next major version of Nightwatch is available in NPM as an alpha pre-release. It contains a wide range of new features and improvements for writing and running tests as well as full cross-browser testing support for W3C WebDriver compliant browsers.
The underlying architecture has been completely reworked to use the official selenium-webdriver Node.js library in communicating with the browser drivers. This means better cross-browser integration, more reliable DOM element command handling, and overall more stable and faster tests.
The goal of the alpha release is to gather some feedback, identify, and fix major bugs while at the same time finalize the new APIs and also update the documentation. So it's quite important that you let us know of any major issues encountered so we can make the upgrade from v1.x as smooth as possible. There are a few breaking changes that are mentioned at the end of this post, but they should be relatively small.
Among all the types of tests which make up the pyramid of software testing, the end-to-end UI tests are considered by far the most difficult to manage, slow to execute, unstable, flaky, and sometimes even downright impractical. Just consider this recent post from the ThoughtWorks blog – the author recalls a response from an engineering team that was asked about the state of their UI testing:
"Well, we have a couple of Selenium tests, but they're pretty brittle. They always seem to be broken, so we rarely run them.
Not only that, but just by looking at what the team behind the Cypress project write on their website, it seems that software testing doesn't enjoy a favourable reputation among software developers: “Testing sucks. It’s the part that every developer dreads.”
Welcome to the new Nightwatch engineering blog, which will contain the latest updates and developments around the Nightwatch project. It will also serve as a resource for tutorials and other kinds of related material. The content will be written and curated by the Nightwatch team, but it may also feature occasional guests posts written by our friends and collaborators.
Nightwatch was published at the beginning of 2014 and was created as a complete and integrated framework which would enable engineers to write end-to-end tests quickly and without headaches. While writing it, we were guided by the belief that writing and running automated UI tests should be a straightforward and pleasant task, and should require as little configuration and maintenance as possible.
The task of interacting with browser internals was already handled by the Selenium project and working with the Selenium server via an HTTP based api was a straightforward task. And so Nightwatch was born by bringing together various existing tools and techniques into one easy-to-use integrated solution.