The apis looks similar but there are some core differences:
Nightwatch / WD.js:
- queue based chain / promise
- home cooked asserters / chai+chai-as-promised (or else)
- nodeunit / mocha (+mocha-as-promised) (or else)
The queue based chain is a bad pattern when async call are involved, as soon as you try to do something complex, or compose a bit, you end up having to manually halt the queue and insert tasks manually (But maybe NightWatch will prove me wrong). We use to have a chain api like this in WD.js and there were so many issues, that it led me to reimplement the chaining using promises.
Nightwatch is far for mature, just have a look at the http protocol, no retry, no timeout setting, content/length+content-type in GET and DELETE. It is going to break pretty quickly in non-straightforward cases like sauce-connect or queuing.
The greatest thing about Nightwatch is the website/doc, and it is really good, should try to emulate that.