A next-generation code testing stack for JavaScript.

License: Other

Language: TypeScript

Keywords: coverage, intern, javascript, testing, typescript, webdriver


Software testing for humans

BrowserStack Status codecov Average time to resolve an issue Percentage of issues still open FOSSA Status

Intern logo

Intern is a complete test system for JavaScript designed to help you write and run consistent, high-quality test cases for your JavaScript libraries and applications. It can be used to test any JavaScript code.

  • Plain JavaScript code, in any module format (or no module format!)
  • Web pages generated by server-side languages (like Java, PHP, or Ruby)
  • Native or hybrid iOS, Android, and Firefox OS applications

Intern is minimally prescriptive and enforces only a basic set of best practices designed to ensure your tests stay maintainable over time. Its extensible architecture allows you to write custom test interfaces, executors, and reporters to influence how your tests run & easily integrate with your existing coding environment. Intern also comes with Grunt tasks so it can be quickly added to existing Grunt-based workflows, and is designed to work out-of-the-box with popular continuous integration services like Jenkins and Travis CI.

If you’re into name-dropping, Intern gets used every day by teams at Twitter, Stripe, Mozilla, IBM, Marriott, Philips, Zenput, Alfresco, Esri, HSBC, ING, Intuit, and more. It’s also the testing framework of choice for growing numbers of open-source projects.

💡 If you’re an Intern user who’s new to Intern 4, see the Changes from Intern 3 document for a summary of the major differences. For Intern 3 documentation, please see the Intern 3 README.

💡 Recently updated your browser and your WebDriver tests stopped working? You may need to pin your WebDriver versions.

Quick start

  1. Install from npm

    $ cd /my/project
    $ npm install intern
  2. Create an intern.json file in your project root.

      "suites": "tests/unit/**/*.js"
  3. Verify that your configuration works by running Intern and checking that no errors are output.

    $ ./node_modules/.bin/intern
  4. Start writing tests!

TypeScript setup

Intern installs a global variable that tests may not be aware of if nothing imports the base intern package. To ensure Intern’s types are loaded, add the following to your tsconfig.json:

  "compilerOptions": {
    "types": ["intern"]

Alternatively, add a triple-slash directive to the top of your suite files:

/// <reference types="intern" />


Intern can run unit tests in most browsers that support ECMAScript 5, including mobile browsers on Android and iOS, and in Node 6+. Note that Internet Explorer 9 is not supported.

Intern’s self-tests run against IE 10 and 11, Firefox 36 and current, Chrome 38 and current, and Safari 9 and 10, as well as the latest LTS and current versions of Node.

Intern can run functional tests using WebDriver-compatible applications and services, including Selenium, Appium, Selendroid. It has built-in support for cloud testing services from BrowserStack, CrossBrowserTesting, SauceLabs, and TestingBot.

More information

Get help

The best place to ask questions and get answers about Intern is Stack Overflow. Just tag your question with intern. If you have more immediate questions, or just want to chat with other people interested in Intern, join the Gitter room at theintern/intern. See the Help page for more information.


Intern is a JS Foundation project offered under the New BSD license.

FOSSA Status

© SitePen, Inc. and its contributors

Intern’s self-tests run on
BrowserStack logo

Project Statistics

Sourcerank 18
Repository Size 11.6 MB
Stars 4,130
Forks 303
Watchers 134
Open issues 132
Dependencies 825
Contributors 54
Tags 121
Last updated
Last pushed

Top Contributors See all

Jason Cheatham Colin Snover Bryan Forbes Paul Bouchon Daniel M. Ben Hockey Vlad Filippov jonnycornwell Kitson Kelly Paul Grime Paul Linh Nguyen Jacob M. Roufa Ed Hager Rodney Rehm Seth Holladay Rozaev Viktor Mike Cebrian Heng Liu Amanpreet Singh

Packages Referencing this Repo

Intern: geezer edition. A next-generation code testing stack for last-generation JavaScript code.
Latest release 2.2.3 - Updated - 4.13K stars
Intern: geezer edition. A next-generation code testing stack for last-generation JavaScript code.
Latest release 2.2.3 - Published - 4.13K stars
Intern. A next-generation code testing stack for JavaScript.
Latest release 4.5.0 - Updated - 4.13K stars
A next-generation code testing stack for JavaScript.
Latest release 4.5.0 - Published - 4.13K stars

Recent Tags See all

4.5.0 July 29, 2019
4.4.3 June 05, 2019
4.3.5 March 07, 2019
4.4.2 March 04, 2019
4.4.1 January 20, 2019
4.4.0 January 14, 2019
4.3.4 January 11, 2019
4.3.3 October 24, 2018
4.3.2 October 21, 2018
4.3.1 September 21, 2018
4.3.0 September 13, 2018
4.2.4 September 06, 2018
4.2.3 August 18, 2018
4.2.3 August 18, 2018
4.2.2 July 03, 2018

Interesting Forks See all

A next-generation code testing stack for JavaScript.
JavaScript - Other - Last pushed - 1 stars - 4 forks
A next-generation code testing stack for JavaScript.
JavaScript - Other - Updated - 1 stars
JavaScript - Other - Last pushed - 1 stars
A next-generation code testing stack for JavaScript.
JavaScript - BSD-3-Clause - Updated - 1 stars

Something wrong with this page? Make a suggestion

Last synced: 2019-03-04 20:30:08 UTC

Login to resync this repository