Xolv.io will soon allow jasmine to also run the same end-to-end capability that cucumber current has.
I think some clarification is needed on Cucumber / Nightwatch / Jasmine+Webdriver.
Cucumber is not just a testing tool. It allows you to write Specification by Example. That is, the specs you write are executable. This means you write plain English (or other languages) document called a feature file, and you use the Gherkin syntax to write a story that has narrative and scenarios. The intent behind cucumber is to create specifications for a system that tell you WHY the system is supposed to do. Cucumber is the intersection between requirements, documentation and testing. It wraps your entire process from the moment you start a specification to the point you run it on your CI server. This diagram here illustrates this concept:
This tooling supports a process called Behaviour Driven Development. If you want to have a BDD practice within your company of technical and non technical people, then Cucumber is the right tool for you. The benefits of doing BDD in a company are far greater than just testing.
Other frameworks like
xolvio:webdriver or Nightwatch provide you with end-to-end testing. It’s possible to make them use a BDD-like syntax but they were not built from the ground up to support a BDD process. When you write test scripts, they typically hide away WHY a system and focus on only the HOW. Here’s an example:
Expect('#message', 'Congratulations, you bought a pencil!')
This tells you HOW the user buys for s pencil but not WHY. If you read:
Scenario: Special customers receive a 90% discount
Given Jon has logged in
When he orders a pencil worth $10
Then he is charged $1
And he is sent a pencil
The automation for the steps above would be the same for Cucumber in the automation layer as the test script, but the scenario has provided a lot more context for business and technical people to see.
Hope that helps you decide what’s best for you