What are the differences between using Nightwatch.

2019-03-09 17:10发布

问题:

What are the differences? What are the advantages of using one over the other for an Angular project?

Nightwatch.js vs Protractor

回答1:

If you are working on an AngularJS project, the choice is simple - Protractor:

  • it is being made specifically for angular apps (though it can be used for non-angular apps also)
    • supports angular-specific locator strategies (like by.model, by.repeater etc)
    • waits for angular to start up during the page load (sync)
  • it is being actively maintained and improved mostly by google developers with a close cooperation with an angular team - this means that protractor follows the angular release cycle and new changes


回答2:

There are a few more differences that weren't laid out in the top answer.

The big one for me is, as of now, protractor doesn't support phantomJS (http://www.protractortest.org/#/browser-setup#setting-up-phantomjs). I planned on integrating automation in to the CI system, but with protractor I would have to set up a windows VM to run the tests.

Other benefits of nightwatch:

  • Asserts are done automatically.
  • Clean console output, you could hand off to anyone.
  • Test reports are automatically generated and saved to a /reports directory.

Protractor pros:

  • The angular-specific locators that protractor supports is very powerful and could help immensely with creating stable tests.
  • WaitForAngular is also very helpful.

EDIT: Since the time I wrote this comment and present day our team has happily switched over to using cypress.io. If you are deciding test frameworks I highly recommend checking it out: https://www.cypress.io/