Nightwatch.js is an easy to use Node.js-based End-to-End (E2E) testing solution for browser-based apps and websites. It uses the powerful W3C WebDriver API to perform commands and assertions on DOM elements. The tool has a few built-in plugins for Junit XML reporting that make it easy to send steps reports to CI servers such as Jenkins, TeamCity and Hudson, as well as a Grunt plugin for simple task execution. You can execute your tests against a local Selenium server or against a cloud server such as Perfecto and others. This solution is one of the main competitors to Protractor.