Intern. Software testing for humans.
- Write tests in JavaScript using any style you like (TDD, BDD, whatever!).
- Run tests straight from your browser, right in Node.js, or against many browsers & platforms at the same time with the Intern test runner.
- Get full code coverage reporting so you know what’s left to test.
- Seamlessly run tests on Sauce Labs, BrowserStack, TestingBot, or your own Selenium Grid.
- Ready for continuous integration? Intern fully integrates with Travis CI, Jenkins, and TeamCity out of the box.
Trusted by
Alfresco, Esri, HSBC, IBM, Intuit, Mozilla, and more
Get Intern from GitHub or just run npm install intern now
Does it work with <library>?
You bet! No matter what library or framework your application uses, client–side and server–side, you can test it with Intern! Check out our example projects to see how simple it is to get Intern up and running with many popular JavaScript libraries:
What can Intern do that others can’t?
| Intern | QUnit | Mocha | Jasmine | BusterJS | Karma | Nightwatch.js |
|---|---|---|---|---|---|---|
| Includes unit testing | ||||||
| Yes | Yes | Yes | Yes | Yes | No | No |
| Includes functional testing | ||||||
| Yes | No | No | No | No | No | Yes |
| Includes code coverage analysis | ||||||
| Yes | No | Yes | No | Extension | Yes | No |
| Runs tests in parallel for improved performance | ||||||
| Yes | No | No | No | No | Yes | Yes |
| Uses true1 browser events | ||||||
| Yes | No | No | No | No | No | Yes |
| Supports AMD natively | ||||||
| Yes | No | No | No | Extension | Extension | No |
| Runs stand-alone2 in browsers | ||||||
| Yes | Yes | Build required | Build required | Experimental | No | No |
| Tests Node.js code | ||||||
| Yes | No3 | Yes | Yes | Yes | Yes | No |
| Supports multi-level source maps | ||||||
| Yes | No | No | No | No | No | No |
| Can be used with any4 assertion library | ||||||
| Yes | No | Yes | No | Yes | N/A | No |
| Includes multiple test interfaces | ||||||
| TDD, BDD, object | TDD | TDD, BDD, object | BDD | TDD, BDD | N/A | Object |
| Lets you write your own custom test interfaces | ||||||
| Yes | No | Yes | No | Yes | N/A | Commands only |
| Lets you write your own custom reporters | ||||||
| Yes | No | Yes | No | Yes | Yes | No |
| Uses Promises for asynchronous testing | ||||||
| Yes | Globals | Yes | Polling | Yes | Callbacks | Callbacks |
| Uses standard W3C browser testing APIs (WebDriver) | ||||||
| Yes | No | No | No | No | No | Incomplete |
| Automatically fixes bugs in Selenium servers | ||||||
| Yes | No | No | No | No | No | No |
| Tests native mobile apps | ||||||
| Yes | No | No | No | No | No | Yes |
| Includes built-in support for Travis CI, Jenkins, and TeamCity | ||||||
| Yes | No | No | No | Yes | Yes | Partial |
| Includes built-in Sauce Labs integration | ||||||
| Yes | No | No | No | No | No | No |
| Includes built-in BrowserStack integration | ||||||
| Yes | No | No | No | No | No | No |
| Includes built-in TestingBot integration | ||||||
| Yes | No | No | No | No | No | No |
| Comes with Grunt tasks | ||||||
| Yes | 3rd party | |||||
| Gets your coffee and makes photocopies | ||||||
| Yes | No | No | No | No | No | No |
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: Some older versions of QUnit can be used in conjunction with a 3rd party module to run on Node.js, but newer versions do not support Node.js and will break even with the use of 3rd party modules.
4: If it throws an error on failure, it works with Intern.
OK, how about documentation?
Intern’s comprehensive documentation will walk you through everything you need to know. Detailed tutorials, examples, API information and more await you in the user guide. Or, if you prefer lectures, you can watch our introductory talk from jQcon Chicago 2014.
Go to the user guide or watch our jQcon Chicago 2014 talk
Need some help?
Don’t stress if you get stuck and need a little assistance. Free, community-provided Intern support is always available. SitePen also offers workshops and commercial support for Intern if you need a little extra TLC.
- Stack Overflow or IRC for help using Intern
- GitHub Issues for bugs and feature requests