Main menu

Software testing for humans.

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 Experi­mental 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 N/A 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 commercial support for Intern if you need a little extra TLC.

Visit Intern on GitHub