Intern
What it is
Intern is an open-source system for writing and running unit and functional tests for JavaScript libraries and applications. Tests can be written in JavaScript or TypeScript using TDD or BDD approaches, then run in Node.js or web browsers, including across multiple browsers and platforms with its test runner. Intern reports code coverage and can target web pages as well as native or hybrid iOS and Android apps. For automation, it supports WebDriver-compatible applications and services such as Selenium, Appium, and Selendroid. Cloud testing options include BrowserStack, CrossBrowserTesting, Sauce Labs, and TestingBot; local setups can use a Selenium server or a user's own Selenium Grid. The project lists Travis CI, Jenkins, and TeamCity integrations, and allows custom test interfaces, executors, and reporters. Intern is free, offered under the New BSD license, and can be installed with `npm install intern`. Community support is available through Stack Overflow, Gitter, and IRC. Internet Explorer 9 is not supported.
For and against
For
- Free and offered under the New BSD license
- Runs tests in Node.js and web browsers
- Reports code coverage
- Targets native and hybrid iOS and Android apps
- Supports multiple listed cloud and CI integrations
Against
- Internet Explorer 9 is not supported
- Documentation viewer requires JavaScript
The verdict
Intern brings unit and functional testing, coverage reporting, browser automation, and mobile-app test support into one test system. Its listed Internet Explorer 9 limitation is worth checking against your target environment.
Who it suits
Intern suits developers building JavaScript or TypeScript projects who need browser, Node.js, or mobile application testing. It may also suit teams connecting tests to cloud services, local Selenium setups, or listed CI systems.
On the record
- Browser automation
- Intern supports WebDriver-compatible applications and services, including Selenium, Appium, and Selendroid.github.com · read 4 Oct 2026
- CI integrations
- The homepage lists Travis CI, Jenkins, and TeamCity as out-of-the-box integrations.theintern.io · read 8 Oct 2026
- Cloud integrations
- The homepage lists Sauce Labs, BrowserStack, TestingBot, and a user's own Selenium Grid for running tests.theintern.io · read 4 Oct 2026
- Cloud testing
- Intern has built-in support for BrowserStack, CrossBrowserTesting, Sauce Labs, and TestingBot.theintern.io · read 8 Oct 2026
- Code coverage
- Intern provides code coverage reporting.theintern.io · read 4 Oct 2026
- Commercial help
- The homepage says SitePen offers workshops and On-Demand Development assistance for Intern.theintern.io · read 8 Oct 2026
- Compatibility limit
- The project README says Intern does not support Internet Explorer 9.github.com · read 4 Oct 2026
- Coverage
- Intern provides code coverage reporting.theintern.io · read 8 Oct 2026
- Documentation limitation
- The documentation page says its viewer requires JavaScript and links to Intern project repositories on GitHub.theintern.io · read 8 Oct 2026
- Execution
- Tests can run in a browser, in Node.js, or across multiple browsers and platforms with the Intern test runner.theintern.io · read 4 Oct 2026
- Extensibility
- Intern supports custom test interfaces and reporters.theintern.io · read 8 Oct 2026
- Install
- The homepage links to GitHub downloads and says to install Intern with `npm install intern`.theintern.io · read 4 Oct 2026
- License
- The homepage identifies Intern as New BSD licensed.theintern.io · read 8 Oct 2026
- Local testing
- Intern supports a local Selenium server and a user's own Selenium Grid.theintern.io · read 8 Oct 2026
- Maker
- The product site says Intern is created by SitePen and © 2022 OpenJS Foundation.theintern.io · read 4 Oct 2026
- Mobile testing
- Intern can test native mobile application UIs through Appium, ios-driver, or Selendroid.theintern.io · read 8 Oct 2026
- Purpose
- Intern is a JavaScript testing framework for websites and applications.theintern.io · read 8 Oct 2026
- Security
- The GitHub repository links a security policy, but the opened product pages state no security certifications or compliance claims.github.com · read 4 Oct 2026
The review
Intern suits JavaScript teams that need unit and functional tests to reach across Node.js, browsers, and mobile app interfaces. Its broad, extensible runner is compelling for that mix, but Internet Explorer 9 support is a hard boundary.
Overview
Intern brings test authoring, execution, coverage reporting, and browser automation into an open-source system for JavaScript libraries and applications. Tests can use JavaScript or TypeScript with TDD or BDD styles, and run in Node.js or browsers. Teams working across several environments can use the same test runner rather than confining their suite to one runtime.
The project also reaches web pages and native or hybrid iOS and Android applications. WebDriver-compatible tools and services connect it to browser and mobile automation. This range is useful when a project spans those targets, though it adds little reason to choose Intern for a narrowly scoped test setup. Teams that require Internet Explorer 9 should look elsewhere.
Key features
- Unit and functional testing: JavaScript and TypeScript tests can follow TDD or BDD styles and run in Node.js or browsers. That gives teams flexibility in language, test convention, and runtime.
- Multi-browser execution: Intern can run tests across browsers and platforms, including through a local Selenium server or a user's Selenium Grid. This is useful for projects that need coverage beyond one browser, but depends on the environments the team connects.
- Coverage reporting: Intern reports code coverage, giving teams a way to see how much code their tests exercise.
- Browser and mobile automation: WebDriver-compatible applications and services include Selenium, Appium, and Selendroid. Intern can test web pages as well as native or hybrid iOS and Android interfaces, making it a stronger fit for projects with mobile UI test needs than a browser-only workflow.
- Cloud and CI integrations: The project supports BrowserStack, CrossBrowserTesting, Sauce Labs, and TestingBot, as well as a user's own Selenium Grid. Out-of-the-box CI integrations include Travis CI, Jenkins, and TeamCity, which can connect test execution to established build workflows.
- Extensible architecture: Custom test interfaces, executors, and reporters let teams adapt the system to their own testing workflow. That flexibility is valuable when the built-in shape is not enough, though the project is less attractive to readers seeking a narrowly defined runner.
Pricing
Intern is free and open source under the New BSD license, with no free trial because there is no paid plan to trial. There are no per-seat charges or free-plan quotas to weigh against paid tiers.
Installation is through npm install intern, and the project site links to GitHub downloads. Community support is free through Stack Overflow, Gitter, and IRC. That keeps the cost of entry low, but teams that need commercial assistance should account for the separate SitePen services.
Platforms
Intern supports Node.js and web browsers, with listed platform availability across Android, iOS, Linux, macOS, self-hosted environments, the web, and Windows. Its README also describes testing native and hybrid iOS and Android apps through Appium, ios-driver, or Selendroid. The main compatibility caveat is Internet Explorer 9, which Intern does not support.
Who it's for
Intern is best suited to JavaScript or TypeScript teams whose test suite needs to cover more than one browser or runtime, or extend from web pages into mobile application interfaces. Its integrations and custom executors make it a practical option for teams with existing CI and browser-testing infrastructure. It is a poor fit for projects that must support Internet Explorer 9, or for teams that need published security certifications or compliance claims.
Pros and cons
- Pro — Broad test targets: Unit and functional tests can run in Node.js and browsers, with paths to web and native or hybrid mobile testing. That breadth can serve projects that would otherwise maintain separate test workflows.
- Pro — Flexible integrations: Cloud testing, local Selenium infrastructure, CI integrations, and custom interfaces give teams several ways to fit Intern into an existing setup.
- Pro — Free and open source: The New BSD license and no-cost availability make it accessible without a subscription or seat calculation.
- Con — No Internet Explorer 9 support: Legacy-browser requirements rule Intern out for teams that need that target.
- Con — JavaScript-required documentation viewer: The documentation viewer requires JavaScript, which may make it inconvenient in restricted or script-disabled environments.
- Con — No stated security certifications or compliance claims: Organizations that require such assurances should verify their requirements independently before adopting it.
Alternatives
JavaScript Testing Frameworks is a useful starting point for comparing other tools in the category.
- QUnit is another free, open-source JavaScript testing framework, distributed through CDN, npm, and Yarn; consider it if that framework and distribution model suit your project better.
- Karma is free and open source, but deprecated, with no new features or general bug fixes. Choose it only if that status fits your maintenance needs.
- Cucumber.js is a free npm module that can be installed as a development dependency; consider it as a different option for a JavaScript testing setup.
- uvu is a free MIT-licensed test runner for Node.js and the browser, a simpler-scope alternative if those are the environments you need.
- Web Test Runner is another option for developers looking for modern web development tools and browser-focused guidance.
- Poku is free and open source, with Node.js, Bun, and Deno support; consider it when those runtimes are the priority.
- Pure Test is free Apache-2.0 open-source software with no paid plans; consider it as another open-source testing option.
- Rstest is a free, MIT-licensed JavaScript and TypeScript testing framework; it is another option for teams comparing frameworks for those languages.
Verdict
Choose Intern if your JavaScript or TypeScript project needs one extensible system for unit and functional testing across Node.js, browsers, and mobile interfaces. Its range of test targets and integrations is the main reason to adopt it, while its Internet Explorer 9 limitation is the clearest reason to choose another tool.