| Intern | AVA | BusterJS | Jasmine | Jest | Mocha | Nightwatch | QUnit | Wdio | |
|---|---|---|---|---|---|---|---|---|---|
| Includes unit testing | |||||||||
| Includes functional testing | |||||||||
| Comes with TypeScript typings | |||||||||
| Includes code coverage analysis | |||||||||
| Runs tests in parallel for improved performance | |||||||||
| Uses true1 browser events | |||||||||
| Supports AMD natively | |||||||||
| Runs stand-alone2 in browsers | |||||||||
| Tests Node.js code | |||||||||
| Supports multi-level source maps | |||||||||
| Can be used with any3 assertion library | |||||||||
| Includes multiple test interfaces | |||||||||
| Lets you write your own custom test interfaces | |||||||||
| Lets you write your own custom reporters | |||||||||
| Uses Promises for asynchronous testing | |||||||||
| Uses standard WebDriver APIs | |||||||||
| Automatically handles Selenium server bugs | |||||||||
| Tests native mobile apps | |||||||||
| Built-in support for multiple CI services | |||||||||
| Built-in support for multiple cloud testing services | |||||||||
| Comes with Grunt tasks | |||||||||
| Gets your coffee and makes photocopies |
1: True events are not generated by JavaScript within the sandbox, so are able to accurately emulate how a user actually interacts with the application. Synthetic events generated by other test frameworks are limited by browser security restrictions.
2: Stand-alone means that unit tests can be executed in a browser by navigating to a URL without needing any special HTTP server or proxy for support.
3: If it throws an error on failure, it works with Intern.